elasticsearch 来自解释API的“N,具有字段的文档总数”远大于我的实际文档数

pkwftd7m  于 2023-03-01  发布在  ElasticSearch
关注(0)|答案(1)|浏览(143)

我试图使用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

我也尝试在idfhttps://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
ozxc1zmp

ozxc1zmp1#

是否已从该索引中删除文档?如果是,则可能是原因。实际上,文档总数还包括仍在索引中但标记为已删除的文档(source from elastic

更新:

作为后续,你经常更新文档吗?因为当你更新一个文档时,在Lucene的引擎盖下,你会把旧文档标记为已删除,然后创建一个新文档。所以,举个例子,如果你更新同一个文档100次,你会从搜索中返回一个文档,但是在你的细分中有101个文档。
如果是这种情况,可以尝试对索引(docs)执行一个_forcemerge,这样可以释放已删除文档所占用的空间,但请记住,强制合并只读索引是最佳实践

相关问题