如何正确排序ElasticSearch结果

时间:2016-01-21 17:34:55

标签: elasticsearch

例如,我有以下两个文件,其中包含字段ID和名称(分析名称字段):

1,jack-in-box
2,box

当我的查询是"框"时,我得到了这两个文件,但实际上我只想要文档2,或者获得文档1上面的文档2。 我该如何查询呢。

我知道doc1被标记为jack,in和box,所以当我搜索框时我会得到doc1。我目前的解决方案是创建另一个名为name_not_analyzed的字段,但不进行分析。但我一直想知道我们是否有最好的方法通过查询来解决这个问题,我不必重新索引。提前致谢!

1 个答案:

答案 0 :(得分:1)

正如@jgr在评论doc2中指出的那样默认情况下应该高于doc1,除非你有自己的排名算法,或者如果你使用的是constant score query,或者你只使用filter会给score { "query": { "filtered": { "filter": { "script": { "script": "_source.name.toLowerCase()=='box'" } } } } } 1}} 1对所有文件

现在,如果您只想要doc2,可以使用scripting

source

我正在访问([a-z0-9]*[A-Z][a-z0-9]*[A-Z]\w*) 本身进行检查,同时使用小写字母匹配 BOX Box 等。

希望这会有所帮助!!

相关问题