Challenge Overview

Project Overview

NASA needs your help building an enterprise search portal. NASA & Topcoder have completed the design and front-end code for a search interface that is intuitive for beginner to advanced users which allows users to search against NASA intranet as well as public internet data sets. 

As part of this project, we are integrating a new search engine (Solr Cloud) which will serve as a backend to the Enterprise Search User Interface and seek to expand the capabilities of the existing application. Please see below for contest specific requirements.

Challenge Overview

This is an Idea Generation contest. Please note that you do not need to submit any code for this contest. As part of this challenge, we wish to harness the capabilities of machine learning and are looking for a suitable recommendation engine. Overall, the expectation of this recommendation engine are:
----Recommend results based on what URL’s were clicked on by other users for a specific query
----Recommend results based on what URL’s were clicked on by other users for a specific query based on the location the user is from.
----Recommend results based on what URL’s other users clicked on for a specific query based on what other users clicked on with similar query profiles to the current user.
----Recommend queries for users based on what other users with the same location and job function search for.

Submission Guidelines

Your submission should primarily be textual (Word Document, PDF, HTML, RTF) with a detailed description of your ideas. Describe clearly how your idea meets all the requirements and how it stands out / has an advantage from other possible ideas.



Final Submission Guidelines

You must submit a word documentation with a detailed description of your ideas. Describe clearly how your idea meets all the requirements and how it stands out / has an advantage from other possible ideas.

With this background, you should now be able to proceed with the requirements for the SolrCloud Recommendation Engine which are as follows:
----Your solution should be able to integrate with SolrCloud, version 5.1.0 or later
----The recommendation engine should provide the following functionality for the search solution:
--------To recommend results based on what URL’s were clicked on by other users for that query
--------Recommend results based on what URL’s were clicked on by other users for a specific query based on the NASA location  / center the user is from.
--------Recommend results based on what URL’s other users clicked on for a specific query based on what other users clicked on with similar query profiles to the current user.
--------Recommend queries for users based on what other users with the same NASA location / center and job function search for. Here, the expectation is not that a job function should be built out, but the ability to add in additional filters on the recommendations that allows us to make them more specific to something like a job function or physical location is a need we have for the future so that needs to be a consideration for the recommendation.
----There are many open source solutions available that could be utilized. Any solution used should be able to easily integrate into a Solr Cloud search solution and should require the least amount of supervised learning possible. 
----The preferred solution should be an unsupervised or semi­-unsupervised machine learning implementation, but if that impacts quality of the capability a low level of supervised learning is acceptable.

Technology Background

The existing UI Prototype for the challenge can be found here. Check it out and familiarize yourself with the front end for this application. There’s also a demo of this app, running here

We are using Apache Solr Cloud for our enterprise search needs. NASA has provided us with a Docker image in which Solr Cloud has been installed. You can find the Docker image link in the contest forum. You will find the installation steps at the end of this document.

We are providing this to allow you to familiarize yourself with the kind of dataset that the application will be dealing with.

Contest Resources

----Solr Cloud: http://lucene.apache.org/solr/
----Frontend Code: https://github.com/NASA-Tournament-Lab/Search-User-Interface
----Fronend Demo Link: https://demo.topcoder.com/OPM/NSP/prototype/index.html 

Installation of the Solr Docker Image

To install this image, make sure that you have Docker installed and running successfully. Installation steps for Docker is out-of-scope. Your best approach is to visit the official Docker website and get the installation steps for your environment.

Once you have downloaded the image, you can import and run it as follows (run the commands in the same location where the image was downloaded / located):

$ docker import nasasolr.gz
$ docker run -d -p 8983:8983 -p 9983:9983 {image name} /bin/bash -c "/opt/solr/bin/solr/ -c -m 2G; while true; do sleep 3600; done;"

You can now visit http://localhost:8983/solr to get the Solr interface. You will find that this contains only one core / collection.

ELIGIBLE EVENTS:

2016 TopCoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30051564