2013-04-08 59 views
2

我想根据数字与查询的接近程度对我的文档进行评分。鉴于我有两个文件document1.field = 1document2.field = 10,查询field = 3然后我想要document1._score > document2._score。或换句话说,我想要一个像模糊查询对号码的东西。我将如何实现这一目标?用例是我想支持价格查询(精确或范围),但想要排列不完全在边界内的东西。Elasticsearch基于数字与查询的接近程度来计分

回答

1

它可以使用custom_score查询来实现,其中脚本将根据确切价格和期望价格之间的差异的绝对值确定提升。应该将期望的价格作为参数传递给脚本,以避免为每个请求重新编译脚本。

或者,它可以使用custom_filters_score查询来实现。这里的过滤器将包含期望价格的不同范围。较小的范围将具有较高的提升量,并且在较大范围内出现在列表中较高。

2

您正在寻找Decay functions

衰减函数得分的文件与根据文档的数字字段值从用户给定的原点的距离衰变的功能。这与范围查询类似,但具有平滑边缘而非框。

相关问题