Skip to content
An ipython notebook demonstrating working with LTR
Branch: master
Clone or download
Latest commit eb3c47a Apr 23, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
data Initial commit Mar 11, 2019
ltr add tree to query level whoopsies Apr 23, 2019
rre RRE config for elastic Apr 21, 2019
solr Add field to solr schema req'd by netfix lab Apr 23, 2019
.gitignore Ignore data Mar 18, 2019
Dockerfile Initial commit Mar 11, 2019
LICENSE License Apr 23, 2019 Doc whitespace Mar 11, 2019
click models.ipynb
conversion-augmented-click-models.ipynb Add click model related ipynbs Apr 20, 2019
evaluation (Solr).ipynb
gonna need a bigger bot.ipynb add tree to query level whoopsies Apr 23, 2019
hello-ltr (Solr).ipynb Fix to solr client init process Apr 22, 2019
hello-ltr.ipynb Fix to solr client init process Apr 22, 2019
netfix movies (Solr).ipynb
netfix movies.ipynb Fix netfix judgments error Apr 23, 2019 pep8 judgment function names Mar 23, 2019
rateFuzzySearch.json.jinja Move up to root Mar 20, 2019
rateSearch.json.jinja Save work Mar 23, 2019
raw-es-commands.ipynb Add raw elastic commands ipynb Apr 22, 2019
requirements.txt Security fix Apr 21, 2019
sandbox.ipynb Cleaning up sandbox Apr 23, 2019
tale-of-two-queries (Solr).ipynb pep8 judgment function names Mar 23, 2019
tale-of-two-queries.ipynb add tree to query level whoopsies Apr 23, 2019 Add a judgments to CSV converter Apr 16, 2019



  • An elasticsearch server running the ES LTR plugin. (See provided Dockerfile to jumpstart this process)
  • A Python3 virtualenv with the requirements from requirements.txt installed pip install -r requirements.txt
  • A JRE to run the ranklib jar


You can use the provided Dockerfile to quickly start up an elastic instance with the LTR plugin installed

docker build -t ltr-es .

docker run -d -p 9200:9200 -p 9300:9300 ltr-es


Once an elastic server is setup, the notebook provided by this project will:

  • Index sample TMDB data
  • Initialize the LTR plugin store
  • Create "release" FeatureSet
  • Log features for a match_all query
  • Train two models, one that prefers old movies and another the prefers newer movies
  • Submit the models to elastic for use in scoring/rescoring

The overall goal of this project is to demonstrate all of the steps required to work with LTR in elastic. Once familiar with the process, experimentation with more advanced feature sets, queries and judgment lists is recommended.

Getting Started

  • Run jupyter notebook and load the hello-ltr notebook
  • Run thru each cell to get more familiar with the LTR pipeline
You can’t perform that action at this time.