标签: elasticsearch parent-child
在浏览关于亲子关系的弹性搜索文档时,我发现了这一行,我不确定。
父文档及其所有子文件必须位于同一个分片上。
使用案例
由于我们在多个系统之间进行分片,因此父和子都要同时存在于同一个分片中,父母和子代可能会驻留在不同的分片中。
如果是这样如何避免它们?如果没有请解释?
答案 0 :(得分:1)
每个文档都使用指向某个分片的_routing字段。详细了解路由here。
_routing
用于_routing的默认值是文档的_id或文档的_parent ID(如果存在)。
这意味着默认情况下,您的所有子文档将与其父文档位于同一个分片上 您的情况非常简单,因此使用默认值时,父级和子级不可能驻留在不同的分片中。
但如果关系是祖父或甚至更复杂,则需要手动设置路由。更多详情here