结合查询和按分数排序结果

时间:2018-07-10 07:05:43

标签: elasticsearch

我希望Elastic执行多个(多重匹配)查询并按得分对它们进行排序。每个查询的分数应独立于其他查询计算得出(这与我到目前为止用我认为的bool / should子句在Google上查询的内容不同)。

示例:

查询1:

"multi_match" : {
                  "query":      "test",
                  "fields":     ["a", "b", "c"],
                  "tie_breaker": 0.2,
                  "minimum_should_match": "50%"
                }

查询2:

"multi_match" : {
                  "query":      "test2",
                  "fields":     ["a", "b", "c"],
                  "tie_breaker": 0.2,
                  "minimum_should_match": "50%"
                }

按分数组合结果和顺序。如何使用Elastic做到这一点?

1 个答案:

答案 0 :(得分:0)

我相信您正在寻找Dis Max查询:

  

一个查询,该查询生成由其查询生成的文档的并集   子查询,从而为每个文档评分最高   该文档是由任何子查询生成的,并加了一个平局   任何其他匹配的子查询都将递增。