Counting 1,863 Big Data & Machine Learning Frameworks, Toolsets, and Examples...
Suggestion? Feedback? Tweet @stkim1


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.

I want to jump in!

If you want to just jump in, go straight to the demo. The demo uses Ranklib, a relatively straightforward Java Learning to Rank library, to train models. Follow the directions in the demo README, edit code, and have fun!


See the full list of prebuilt versions. If you don't see a version available, see the link below for building.

To install, you'd run a command such as:

./bin/elasticsearch-plugin install

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


Notes if you want to dig into the code or build for a version there's no build for.

1. Build with Gradle Wrapper

./gradlew clean check

This runs the tasks in the esplugin gradle plugin that builds, tests, generates a Elasticsearch plugin zip file.

2. Install with ./bin/elasticsearch-plugin

./bin/elasticsearch-plugin install file:///path/to/project/build/distributions/

Who built this?

Other Acknowledgments & Stuff To Read

Latest Releases
 May. 26 2017
 May. 24 2017
 Apr. 3 2017
 Feb. 24 2017