我希望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做到这一点?
答案 0 :(得分:0)
我相信您正在寻找Dis Max查询:
一个查询,该查询生成由其查询生成的文档的并集 子查询,从而为每个文档评分最高 该文档是由任何子查询生成的,并加了一个平局 任何其他匹配的子查询都将递增。