elasticsearch 为什么我在弹性搜索中看到已删除的文档,elasticsearch,lucene,elasticsearch,Lucene" /> elasticsearch 为什么我在弹性搜索中看到已删除的文档,elasticsearch,lucene,elasticsearch,Lucene" />

elasticsearch 为什么我在弹性搜索中看到已删除的文档

elasticsearch 为什么我在弹性搜索中看到已删除的文档,elasticsearch,lucene,elasticsearch,Lucene,我有一个弹性搜索集群,在那里我总是使用doc\u作为插入更新api。 我从不调用DeleteApi。 但如果我在弹性搜索中看到很多DeletedDocuments指标。 upsert是否间接调用delete然后插入?ElasticSearch不支持文档更新,即文档是不可变的,我们无法更改它们。显示为就地更改文档,但实际上Elasticsearch执行以下操作: 从旧文档检索JSON 更改文档 删除旧文档 为新文档编制索引 在内部,Lucene(ES是一个基于Lucene库的搜索引擎)只是在每段位

我有一个弹性搜索集群,在那里我总是使用
doc\u作为插入更新
api。 我从不调用
DeleteApi
。 但如果我在弹性搜索中看到很多DeletedDocuments指标。 upsert是否间接调用delete然后插入?

ElasticSearch不支持文档更新,即文档是不可变的,我们无法更改它们。显示为就地更改文档,但实际上Elasticsearch执行以下操作:

  • 从旧文档检索JSON
  • 更改文档
  • 删除旧文档
  • 为新文档编制索引
  • 在内部,Lucene(ES是一个基于Lucene库的搜索引擎)只是在每段位集中标记一个位,以记录文档被删除。所有后续搜索只需跳过任何已删除的文档。这种方法是必要的,因为更新Lucene的一次写入索引数据结构(如发布列表)的成本太高。 您可以在中查看有关删除的更多信息

    老实说,Lucene支持就地更新,但这种方法只能用于更新单值非索引和非存储的基于docValue的数值字段,并且只支持