ElasticSearch:嵌套查询的得分是如何计算的?

时间:2014-09-02 09:01:39

标签: elasticsearch nested

Ho是嵌套查询计算得分吗? 我有这样的情况:

{
  "name": "Lukas",
  "works": {
    "title": "developer",
    "current": true,
    "dummy": "match"
  }
}

没有嵌套字段。 以及这些字段的不同类型的索引,如嵌套和数组。:

{
  "name": "Lukas",
  "works": [
    {
      "title": "developer",
      "current": true,
      "dummy": "match"
    },
    {
      "title": "dad",
      "current": true
    }
  ]
}

如果我针对2个索引(对于现有单词)进行相同的query_search,则得分会有很大差异。 如何计算嵌套查询的分数?

(收到explain:true的说明:

{
  "_explanation": {
    "value": 0.68874943,
    "description": "Score based on child doc range from 0 to 3"
  }
}

1 个答案:

答案 0 :(得分:0)

每个碎片都有自己的TF和IDF,这可能会导致不同的分数: https://groups.google.com/forum/#!topic/elasticsearch/FK-PYb43zcQ

此外,具有嵌套文档的索引中的文档数包含所有嵌套文档。例如,考虑使用" works-> title"只要。有3名候选人有1个,3个和5个标题,将有12个文件。我相信这些来自3个根文档和(1 + 3 + 5 = 9)嵌套文档。这可能会产生非常不同的IDF。

这假设您的映射指定嵌套,并且您的查询是嵌套类型。