【问题标题】:Elasticsearch - Relevancy of search termsElasticsearch - 搜索词的相关性
【发布时间】:2021-04-21 10:53:18
【问题描述】:

你如何告诉 Elasticsearch 一个全文字段应该相关性低于其他全文字段

假设我有:

"query": {
            "bool": {
                "must": {
                    "query_string": {
                        "fields": ["my_id", "title^2", "intro", "body1", "body2", "body3", "footer"],
                        "default_operator": "AND",
                        "query": "some search query"
                    }
                }
            }
}

我希望 页脚 被视为比其他页脚更不相关。最好的方法是什么?

谢谢

【问题讨论】:

    标签: elasticsearch search elastic-stack elasticsearch-dsl


    【解决方案1】:

    介于 0 和 1.0 decreases the relevance score 之间的提升值。比如:

    {
      "query": {
        "bool": {
          "must": {
            "query_string": {
              "fields": [
                ...
                "footer^0.5"
              ],
              ...
            }
          }
        }
      }
    }
    

    应该可以解决问题。

    【讨论】:

    • @Joe_Sorocin 谢谢!我在标题旁边的原始查询中看到了^2 标记。我认为这会将title 匹配视为更相关?但是你的答案在0到1之间,所以我很困惑。谢谢
    • 没错——屋顶的标志意味着提升,2 意味着你假设的 ??
    • 嘿,顺便说一句,我很快就会发布我的 elasticsearch 手册,里面充满了这样的说明——你可以let me know你感兴趣的主题,我会在发布时通知你!
    • 完美!我会感兴趣的。我会用一些感兴趣的话题来填写。只是我知道,是否有一个经验法则,例如我应该将提升值保持在 0 到 1.0 之间?这样,我们最终不会得到过度夸大的价值?
    • 听起来不错! 0 和 1.0 之间的分数非常好——它们只会降低相关性。现在,虽然 ES 支持索引时提升,但最佳实践是在搜索时分配提升——而且你已经这样做了,所以一切都很好。只需尝试提升,看看最适合您的用例。
    猜你喜欢
    • 2014-06-05
    • 2012-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-19
    • 2019-10-01
    • 1970-01-01
    • 2022-01-04
    相关资源
    最近更新 更多