我有一个关于elasticsearch的索引加载了文档。如果我删除该索引上的所有文档,但保留索引本身,它是否保留该字段上tf-idf评分中使用的标记?也就是说,如果我加载新文档,他们是否会使用此索引数据的旧内容进行重新分析和重新分析,或者结果是否全新,好像旧文档从未存在过一样?删除所有文件时,评分数据中是否有记忆?
答案 0 :(得分:1)
在Elasticsearch中删除文档后,评分过程中会有一些内存。具体来说,TF-IDF评分过程使用分片的maxDOCS值(每个分片进行评分,而不是每个索引进行评分)。但是,删除文档后不会更新maxDOCS,因此可能会影响评分。来自之前在github上的讨论:
完全删除的文档仍然有助于分数计算 它们只被标记为已删除,但统计信息未更新,所以是的 他们为得分做出了贡献。
https://github.com/elasticsearch/elasticsearch/issues/3578
关于数据本身,数据在删除后仍然在Lucene索引中,它只是标记为已删除而不是用户或之后返回。合并lucene段文件时会发生实际的数据删除。
除了maxDOCS和评分的挥之不去的问题之外,实际上这没有任何影响。新文档被标记化和分析,而现有的已删除文档没有任何影响。因此,虽然评分过程中存在一些记忆,但通常不会被认为是一个大问题。