Elasticsearch父子关系缩放

时间:2017-07-13 10:38:19

标签: elasticsearch parent-child

在浏览关于亲子关系的弹性搜索文档时,我发现了这一行,我不确定。

父文档及其所有子文件必须位于同一个分片上。

使用案例

  • 我在父子关系中有两个类型的Elasticsearch索引 公司[父母]和员工[孩子]
  • 要编入索引的记录属于这些模式1父项有超过100个子项。
  • 索引的数量很大,因此我们需要在多个系统中对它们进行分片

由于我们在多个系统之间进行分片,因此父和子都要同时存在于同一个分片中,父母和子代可能会驻留在不同的分片中。

如果是这样如何避免它们?如果没有请解释?

1 个答案:

答案 0 :(得分:1)

每个文档都使用指向某个分片的_routing字段。详细了解路由here

  

用于_routing的默认值是文档的_id或文档的_parent ID(如果存在)。

这意味着默认情况下,您的所有子文档将与其父文档位于同一个分片上 您的情况非常简单,因此使用默认值时,父级和子级不可能驻留在不同的分片中。

但如果关系是祖父或甚至更复杂,则需要手动设置路由。更多详情here