当嵌套文档添加或更新时,哪个文档重新索引

时间:2016-07-01 04:45:06

标签: elasticsearch

https://www.elastic.co/guide/en/elasticsearch/guide/current/nested-objects.html

  

要更新,添加或删除嵌套对象,我们必须重新编制索引   整个文件。

在此内容中,“整体”意味着

  1. 具有文档的单一类型的所有文档
  2. 更新,添加或删除的单个文档

1 个答案:

答案 0 :(得分:0)

嵌套对象只是单个文档的一个组件。

{
  "users" : [
    { "username" : "pickypg", "country" : "US" }
  ]
}

如果users是嵌套数组,则其中的每个对象都是嵌套文档。对该数组的每次更改(添加,更新或删除)都会导致数组中的所有嵌套文档都被重写。

在相关的说明中:你永远不需要使用嵌套类型,除非它一般都是一个数组(并非所有文档都必须使用它,但至少其中一些应该或者它是'是一个很大的浪费)。

并非巧合,整个文档也被重写。真正的负担是,与正常的整个文档不同,每个嵌套文档在写入段时都会添加额外的工作。