elasticsearch 错误的maxDocs和docFreq,带有dfs\u query\u然后\u fetch,elasticsearch,lucene,elasticsearch,Lucene" /> elasticsearch 错误的maxDocs和docFreq,带有dfs\u query\u然后\u fetch,elasticsearch,lucene,elasticsearch,Lucene" />

elasticsearch 错误的maxDocs和docFreq,带有dfs\u query\u然后\u fetch

elasticsearch 错误的maxDocs和docFreq,带有dfs\u query\u然后\u fetch,elasticsearch,lucene,elasticsearch,Lucene,我试图理解Elasticsearch为获得查询的idf所做的计算。 我从一个示例中获取的文档是在Localhost中使用以下行(我使用的是Sense)创建的: POST /library/books/_bulk { "index": { "_id":1 }} { "title": "The quick brown fox", "price":5 } { "index": { "_id":2 }} { "title": "The quick brown fox jumps over the laz

我试图理解Elasticsearch为获得查询的idf所做的计算。 我从一个示例中获取的文档是在Localhost中使用以下行(我使用的是Sense)创建的:

POST /library/books/_bulk
{ "index": { "_id":1 }}
{ "title": "The quick brown fox", "price":5 }
{ "index": { "_id":2 }}
{ "title": "The quick brown fox jumps over the lazy dog", "price":15 }
{ "index": { "_id":3 }}
{ "title": "The quick brown fox jumps over the quick dog", "price":8 }
{ "index": { "_id":4 }}
{ "title": "Brown fox brown dog", "price":2 }
{ "index": { "_id":5 }}
{ "title": "Lazy dog", "price":9 }
我不理解以下问题的评分:

GET /library/books/_search?explain&search_type=dfs_query_then_fetch
{
  "query":{
    "match": {
      "title": "quick fox"
    }
  }
}
根据我对ElasticSearch/Lucene文档的理解,maxDocs应该是5,docFreq应该是3。但是,对于第一个文档(“quick brown fox”)的“quick”和“fox”的idf(“quick brown fox”),解释为docFreq=1,maxDocs=1,对于另一个文档为maxDocs=2

我还尝试了不使用dfs\u query\u然后\u fetch,并使用preference=\u primary或\u replica获得类似结果

分数较高的文档是正确的,但idf不是我所期望的

解释如何显示正确的maxDocs/docFreq,为什么即使使用dfs\u query\u then\u fetch,我也没有预期的数字


谢谢

这是elasticsearch 2.x
解释
api中的错误,搜索类型为
dfs\u query\u然后\u fetch
。解释和分数与实际分数不符


git在这方面提供了更多的见解。但是实际分数应该是准确的。

谢谢你的回答,我没有看到关于分数和解释的问题,但它回答了我的问题。当然,很高兴你发现它有用!