如何在现有的 elasticsearch 索引中插入文档?

How to upsert documents in an existing elasticsearch index?

我有一个包含多个文档的 elasticsearch 索引,现在我想用一些新文档更新索引,这些新文档也可能包含现有文档的副本。最好的方法是什么?我正在为所有 CRUD 操作使用 elasticsearch py

elasticsearch 中的每次更新都会删除旧文档并创建一个新文档,因为文档集合的最小单位称为 segments in elastic-search which are immutable, hence when you index a new document or update any exiting documents, it gets into the new segments which are merged into bigger segments during the merge process

现在,即使您有重复数据但 ID 相同,它也会替换现有文档,并且 它比首先获取文档和比较两个文档以查看是否更好且性能更高它们是重复的,而不是丢弃来自应用程序的 update/upsert 请求, 而不是仅仅索引任何内容,如果出现,ES 将再次插入重复的文档。