【问题标题】:Why does ElasticSearch give a lower score to a term when it's with more terms?为什么 ElasticSearch 对包含更多术语的术语给出较低的分数?
【发布时间】:2014-04-13 22:17:56
【问题描述】:

我有一个索引(在本地、测试、集群上),其中一些字段使用了简单的分析器。

当我搜索一个词时,如果该词在具有更多词的字段中的结果,得到较低的分数 - 为什么会这样?我找不到任何参考资料。

例如,布尔搜索中的“考拉”返回:

  • (title 'a koala'): score 0.04500804
  • (title '如何考拉 1234'): score 0.02250402

查询说明中,fieldNorm第一种情况为1.0,第二种情况为0.5。

是否可以返回与字段中的术语数无关的分数?

【问题讨论】:

  • “a koala”比“how the Koala 1234”更接近“koala”。您是否希望返回不计分的术语查询?或者您是否希望所有带有“koala”的文档都得到同等评分,而不考虑“如何在分数中考虑 1234”?
  • 第二个!我希望他们有相同的分数。

标签: elasticsearch


【解决方案1】:

要返回一个布尔值,必须对 koala 进行术语查询,所有文档在“koala”上的得分都相同。您可以使用常量分数查询基本上从您的查询中删除分数。

这是一个可运行的示例 http://sense.qbox.io/gist/21ae7b7e743dc30d66309f2a6b93043ded4ee401

https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-constant-score-query.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-14
    • 2015-09-24
    • 1970-01-01
    • 2014-07-19
    • 2018-09-06
    • 2017-11-19
    • 2011-06-26
    • 2020-03-19
    相关资源
    最近更新 更多