elasticsearch 为什么Elasticsearch中多个查询文档中的同一术语的idf值不同?,elasticsearch,lucene,elasticsearch,Lucene" /> elasticsearch 为什么Elasticsearch中多个查询文档中的同一术语的idf值不同?,elasticsearch,lucene,elasticsearch,Lucene" />

elasticsearch 为什么Elasticsearch中多个查询文档中的同一术语的idf值不同?

elasticsearch 为什么Elasticsearch中多个查询文档中的同一术语的idf值不同?,elasticsearch,lucene,elasticsearch,Lucene,我正在对我创建的ES索引执行查询。查询由两个术语组成,在返回的文档列表中,我看到一个文档的排名高于另一个文档。尽管第一份文件只包含这两个术语中的一个,而后者包含这两个术语 我使用Explain API查看分数是如何生成的,我发现对于同一术语“温度”,IDF的计算方式不同。这不是预期的,因为idf仅取决于索引中包含术语的文档数和文档总数。此外,我的索引在任何时候都不会被更改 这些是两个Explain调用输出的摘录。其中包括以色列国防军: 文件1: 文件2: 为什么IDF不同?我猜你有不止一个碎片,

我正在对我创建的ES索引执行查询。查询由两个术语组成,在返回的文档列表中,我看到一个文档的排名高于另一个文档。尽管第一份文件只包含这两个术语中的一个,而后者包含这两个术语

我使用Explain API查看分数是如何生成的,我发现对于同一术语“温度”,IDF的计算方式不同。这不是预期的,因为idf仅取决于索引中包含术语的文档数和文档总数。此外,我的索引在任何时候都不会被更改

这些是两个Explain调用输出的摘录。其中包括以色列国防军:

文件1:

文件2:


为什么IDF不同?

我猜你有不止一个碎片,对吗

idf将在该文档的碎片中计算,而不是在整个索引中计算。您可以通过添加
?search\u type=dfs\u query\u然后\u fetch
来强制它计算全局idf。为了提高性能,建议您不要在生产中使用


有关更详细的解释,请参阅:

是,5个碎片。谢谢你的回答。
"description": 
 "weight(description:temperatur in 0) [PerFieldSimilarity], result of:",
                            "details": [
                              {
                                "value": 0.7007727,
                                "description": "score(doc=0,freq=1.0), product of:",
                                "details": [
                                  {
                                    "value": 0.44917533,
                                    "description": "queryWeight, product of:",
                                    "details": [
                                      {
                                        "value": 3.1202636,
                                        "description": "idf(docFreq=5, maxDocs=50)",
                                        "details": []
                                      },
                                      {
                                        "value": 0.14395429,
                                        "description": "queryNorm",
                                        "details": []
                                      }
                                    ]
 "description": "weight(description:temperatur in 21) [PerFieldSimilarity], result of:",
                        "details": [
                          {
                            "value": 1.6804222,
                            "description": "score(doc=21,freq=1.0), product of:",
                            "details": [
                              {
                                "value": 0.61089635,
                                "description": "queryWeight, product of:",
                                "details": [
                                  {
                                    "value": 4.4011974,
                                    "description": "idf(docFreq=1, maxDocs=60)",
                                    "details": []
                                  },
                                  {
                                    "value": 0.1388023,
                                    "description": "queryNorm",
                                    "details": []
                                  }
                                ]