Elasticsearch学习排序插件使用机器学习来提高搜索相关性排名。它正在为维基媒体基金会和Snagajob等地方的搜索提供支持!
这个插件的功能...
这个插件:
- 允许您在Elasticsearch中存储特征(Elasticsearch查询模板)
- 记录特征分数(相关性分数)以创建离线模型开发的训练集
- 在Elasticsearch中存储使用您存储的特征的线性、xgboost或ranklib排名模型
- 使用存储的模型对搜索结果进行排名
文档在哪里?
我们建议花时间阅读文档。里面有很多关于学习排序基础知识以及这个插件如何简化学习排序开发的详细信息。
您还可以参加定期的Elasticsearch学习排序培训,这些培训支持这个插件的免费工作。
我想马上开始!
演示现在位于另一个仓库Hello LTR中,其中包含ES和Solr的示例。按照README中针对Elasticsearch的说明设置环境,然后从notebooks/elasticsearch/tmdb/hello-ltr.ipynb开始。玩得开心!
安装
查看预构建版本的完整列表,选择与您的Elasticsearch版本匹配的版本。如果您没有看到可用版本,请参阅下面的链接进行构建或通过issues提出请求。
要安装,您可以运行类似这样的命令,但要替换为适当的预构建版本zip:
./bin/elasticsearch-plugin install https://github.com/o19s/elasticsearch-learning-to-rank/releases/download/v1.5.4-es7.11.2/ltr-plugin-v1.5.4-es7.11.2.zip
(预计您会确认一些安全例外,您可以向elasticsearch-plugin
传递-b
参数以自动安装)
如果您已经在运行Elasticsearch,别忘了重启!
已知问题
像任何其他软件一样,这个插件也不能免于问题。请阅读已知问题了解我们目前已知的问题。这个文件可能包括可能的解决方法。
本地构建和部署
如果您想深入研究代码或为没有构建的版本构建,请随时自己运行构建和安装过程:
./gradlew clean check
./bin/elasticsearch-plugin install file:///path/to/elasticsearch-learning-to-rank/build/distributions/ltr-<LTR-VER>-es<ES-VER>.zip
如何贡献
有关帮助我们(我们需要您的帮助!)、使用插件开发、创建文档等的更多信息,请阅读CONTRIBUTING.md。
Elastic版本支持
我们尽最大努力官方支持Elasticsearch的*.*.1
版本。如果您需要"点零"兼容性或我们不支持的版本,请考虑提交PR。
谁开发了这个?
- 最初由OpenSource Connections开发。
- 由维基媒体基金会、Snagajob工程团队、Bonsai和Yelp工程团队做出重大贡献。
- 感谢Jettro Coenradie将其移植到ES 6.1版本。
其他致谢和值得阅读的内容
- Bloomberg的Solr学习排序工作
- 我们在Berlin Buzzwords的演讲,我们开发了Elasticsearch学习排序插件。然后开始了艰难的部分
- 博客文章:搜索与其他机器学习问题有何不同
- 也请查看我们其他的相关性/搜索项目:书籍Relevant Search,项目Elyzer、Splainer和Quepid