有两个对象:人类和财物。我想指定一个属于特定人的_parent。 ElasticSearch通过_parent映射提供此功能。但是,我发现的文档和大多数示例都是在SAME索引中完成的。
但如果我有一个人类索引和一个物品索引,我想知道我是否能够跨索引指定父关系。初步测试似乎指向NO。
此外,我的理论是你不能这样做,因为它会导致人类总是在不同的分片上作为归属(不同的索引,不同的分片)。我们从文档中知道人类id用于将孩子(在索引时)路由到与人类相同的分片。这是为了提高效率(在内存连接,往返等)。但这不可能发生,因为我们完全在讨论不同的分片。
问题#1:有没有人知道是否可以跨索引指定_parent?
如果是的话,
问题#2:我提到的路由问题是如何在内部解决的?
答案 0 :(得分:13)
你说“不同的索引,不同的碎片”是正确的 - 这意味着问题#1的答案是否定的。因此,#2无法回答。
答案 1 :(得分:0)
如文档链接https://www.elastic.co/guide/en/elasticsearch/reference/current/parent-join.html
中所述The join data type is a special field that creates parent/child relation within documents of the same index.
这意味着父母/子女都必须在SAME索引中。