elasticsearch ElasticSearch:删除然后添加文档,elasticsearch,lucene,elasticsearch,Lucene" /> elasticsearch ElasticSearch:删除然后添加文档,elasticsearch,lucene,elasticsearch,Lucene" />

elasticsearch ElasticSearch:删除然后添加文档

elasticsearch ElasticSearch:删除然后添加文档,elasticsearch,lucene,elasticsearch,Lucene,我在确保索引未损坏方面遇到问题。因此,我执行添加和索引操作的方式确保了索引不会与我的数据库失步: 从索引中获取文档版本 从数据库获取文档 索引文件 这意味着索引请求以什么顺序出现并不重要,我的索引始终与数据库同步。问题来自Delete操作。可能存在这样的情况:Add请求发生在Delete之后,文档被重新添加,即使它不应该被添加。我知道Lucene不会马上删除文档。有没有办法知道已删除文档的ID?或者,检查已删除文档的版本?如果是,文档在删除请求后在索引中存在多长时间?这可能会起作用: 1.删除文

我在确保索引未损坏方面遇到问题。因此,我执行添加和索引操作的方式确保了索引不会与我的数据库失步:

  • 从索引中获取文档版本
  • 从数据库获取文档
  • 索引文件
  • 这意味着索引请求以什么顺序出现并不重要,我的索引始终与数据库同步。问题来自
    Delete
    操作。可能存在这样的情况:
    Add
    请求发生在
    Delete
    之后,文档被重新添加,即使它不应该被添加。我知道Lucene不会马上删除文档。有没有办法知道已删除文档的ID?或者,检查已删除文档的版本?如果是,文档在删除请求后在索引中存在多长时间?

    这可能会起作用: 1.删除文档时,不会将其从索引中删除,而是替换为“删除文档”。这可以通过引入具有相同ID的空文档的概念来实现,该概念将在“删除”时用空文档替换现有文档。 2.在每次插入之前,检查文档是否为“删除文档”,如果是,则跳过插入/索引操作;如果文档不存在或不是“删除文档”,则为文档编制索引。这基本上是需要完成的额外工作,但允许运行无序的删除和添加

    依靠从lucene可能在某处维护的已删除文档列表中获取ID,将增加时间限制。Lucene/ES会在需要时清理已删除的文档