Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
November 2, 2022 15:08
April 14, 2021 14:14
December 14, 2020 17:08
November 9, 2022 11:03
September 30, 2017 15:29
April 28, 2021 13:54
November 2, 2022 15:08

Build Status

The Elasticsearch Learning to Rank plugin uses machine learning to improve search relevance ranking. It's powering search at places like Wikimedia Foundation and Snagajob!

What this plugin does...

This plugin:

  • Allows you to store features (Elasticsearch query templates) in Elasticsearch
  • Logs features scores (relevance scores) to create a training set for offline model development
  • Stores linear, xgboost, or ranklib ranking models in Elasticsearch that use features you've stored
  • Ranks search results using a stored model

Where's the docs?

We recommend taking time to read the docs. There's quite a bit of detailed information about learning to rank basics and how this plugin can ease learning to rank development.

You can also participate in regular trainings on Elasticsearch Learning to Rank, which support the free work done on this plugin.

I want to jump in!

The demo lives in another repo now, Hello LTR and it has both ES and Solr example. Follow the directions for Elasticsearch in the README to set up the environment and start with the notebooks/elasticsearch/tmdb/hello-ltr.ipynb. Have fun!


See the full list of prebuilt versions and select the version that matches your Elasticsearch version. If you don't see a version available, see the link below for building or file a request via issues.

To install, you'd run a command like this but replacing with the appropriate prebuilt version zip:

./bin/elasticsearch-plugin install

(It's expected you'll confirm some security exceptions, you can pass -b to elasticsearch-plugin to automatically install)

If you already are running Elasticsearch, don't forget to restart!

Known issues

As any other piece of software, this plugin is not exempt from issues. Please read the known issues to learn about the current issues that we are aware of. This file might include workarounds to mitigate them when possible.

Build and Deploy Locally

Notes if you want to dig into the code or build for a version there's no build for, please feel free to run the build and installation process yourself:

./gradlew clean check
./bin/elasticsearch-plugin install file:///path/to/elasticsearch-learning-to-rank/build/distributions/ltr-<LTR-VER>-es<ES-VER>.zip

How to Contribute

For more information on helping us out (we need your help!), developing with the plugin, creating docs, etc please read

Elastic Release Support

We do our best to officially support *.*.1 releases of Elasticsearch. If you have a need for "dot-oh" compatibility or a version we don't support please consider submitting a PR.

Who built this?

Other Acknowledgments & Stuff To Read