我试图使用explain:true
子句来理解我的结果的评分,我发现idf
有这样的内容:
{
"value": 6.660968,
"description": "idf, computed as log(1 + (N - n + 0.5) / (n + 0.5)) from:",
"details": [
{
"value": 37,
"description": "n, number of documents containing term",
"details": []
},
{
"value": 29298,
"description": "N, total number of documents with field",
"details": []
}
]
},
问题是我肯定没有29298
这么多文档,为了确认,我把文档数了一下,一共只有983个文档,有人知道这是怎么回事吗?谢谢!
curl 'https://xxxxxx/_cat/count?v=true'
epoch timestamp count
1677353551 19:32:31 983
我也尝试在idf
(https://en.wikipedia.org/wiki/Tf%E2%80%93idf)上搜索wiki,似乎N只是文档总数
此外,删除的文档是最小的:
curl 'https://xxx/_cat/indices?v=true'
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open en-us kYD_PY9mRNm9wWsVYtNl8w 3 2 12 5 520.3kb 173.4kb
green open ds-en-us OmhX5FMgRTqOCXQEZUP0fA 3 2 141 32 4mb 1.3mb
green open .kibana_1 bxMRa2KEQc2Scl3r9dUsfQ 1 1 1 0 10kb 5kb
green open en-gb Ao6rToHPRmmx9LJx3HI0LQ 3 2 73 13 1.3mb 336.6kb
green open ds-en-gb SOhhP4-kQ9iK8niSI_paOg 3 1 753 34 817.5mb 13.5mb
1条答案
按热度按时间ozxc1zmp1#
是否已从该索引中删除文档?如果是,则可能是原因。实际上,文档总数还包括仍在索引中但标记为已删除的文档(source from elastic)
更新:
作为后续,你经常更新文档吗?因为当你更新一个文档时,在Lucene的引擎盖下,你会把旧文档标记为已删除,然后创建一个新文档。所以,举个例子,如果你更新同一个文档100次,你会从搜索中返回一个文档,但是在你的细分中有101个文档。
如果是这种情况,可以尝试对索引(docs)执行一个
_forcemerge
,这样可以释放已删除文档所占用的空间,但请记住,强制合并只读索引是最佳实践