【问题标题】:Combine queries and order results by score按分数组合查询和排序结果
【发布时间】:2018-07-11 04:47:08
【问题描述】:

我希望 Elastic 执行多个(多匹配)查询并按分数对它们进行排序。每个查询的分数应该独立于其他查询计算(这与我迄今为止使用 bool/should 子句搜索的结果不同)。

例子:

查询 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 做到这一点?

【问题讨论】:

  • 如果它在不同的查询中,您可以在后处理中对其进行排序,即在javascript中使用sort()函数。
  • 我想在 Elastic 中合并这些查询,让 Elastic 对结果进行排序。

标签: elasticsearch


【解决方案1】:

我相信Dis Max 查询是您要找的:

生成由其生成的文档联合的查询 子查询,并以最高分对每个文档进行评分 该文档由任何子查询生成,加上一个平局 任何其他匹配的子查询的增量。

【讨论】:

    猜你喜欢
    • 2013-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-24
    相关资源
    最近更新 更多