我有一个elasticsearch索引,它有多个文档,现在我想用一些新文档更新索引,这些文档可能还包含现有文档的副本。最好的办法是什么?我用ElasticPy搜索所有积垢
1wnzp6jl1#
elasticsearch中的每次更新都会删除旧文档并创建新文档,因为在elasticsearch中,文档集合的最小单位称为不可变的段,因此当您为新文档编制索引或更新任何现有文档时,它会进入新的段中,这些段在合并过程中会合并为更大的段。现在,即使您有重复的数据但具有相同的id,它也将替换现有的文档,它比首先获取文档、比较两个文档以查看它们是否重复以及放弃来自应用程序的更新/升级请求更精细、更高效,而不是仅仅索引任何如果来和es将再次插入重复的文件。
1条答案
按热度按时间1wnzp6jl1#
elasticsearch中的每次更新都会删除旧文档并创建新文档,因为在elasticsearch中,文档集合的最小单位称为不可变的段,因此当您为新文档编制索引或更新任何现有文档时,它会进入新的段中,这些段在合并过程中会合并为更大的段。
现在,即使您有重复的数据但具有相同的id,它也将替换现有的文档,它比首先获取文档、比较两个文档以查看它们是否重复以及放弃来自应用程序的更新/升级请求更精细、更高效,而不是仅仅索引任何如果来和es将再次插入重复的文件。