在Elastic Search的本机脚本记分器中访问Lucene查询

卢卡什·拉林斯基

我想编写一个自定义的Elastic Search评分器,该评分器从索引中的文档中获取所有术语,从查询中获取所有术语,并基于一些自定义逻辑来计算得分。

经过一些研究,似乎在Java的Elastic Search中实现自定义评分器的最直接的方法是使用其“本机脚本”功能(即,实现AbstractDoubleSearchScript)。我的问题是我找不到在这种脚本中访问原始查询对象的方法。我只能访问匹配的文档及其字段。有什么方法可以访问用于搜索的查询对象?

或者,最好的方法是根据我的(复杂)算法(需要知道查询和文档的完整术语列表)对每个结果运行自定义Java代码并对匹配进行评分?

Redragons

实现自定义查询类,并将实际查询(例如布尔查询)包装为其子查询。在Query类中,您具有用于实现自定义评分器的api,您可以在其中访问查询和要评分的当前文档。要精细控制分数,请实现自定义相似度类。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章