ElasticSearch父/子在不同的索引上

时间:2013-08-14 00:35:35

标签: elasticsearch

有两个对象:人类和财物。我想指定一个属于特定人的_parent。 ElasticSearch通过_parent映射提供此功能。但是,我发现的文档和大多数示例都是在SAME索引中完成的。

但如果我有一个人类索引和一个物品索引,我想知道我是否能够跨索引指定父关系。初步测试似乎指向NO。

此外,我的理论是你不能这样做,因为它会导致人类总是在不同的分片上作为归属(不同的索引,不同的分片)。我们从文档中知道人类id用于将孩子(在索引时)路由到与人类相同的分片。这是为了提高效率(在内存连接,往返等)。但这不可能发生,因为我们完全在讨论不同的分片。

问题#1:有没有人知道是否可以跨索引指定_parent?

如果是的话,

问题#2:我提到的路由问题是如何在内部解决的?

2 个答案:

答案 0 :(得分:13)

你说“不同的索引,不同的碎片”是正确的 - 这意味着问题#1的答案是否定的。因此,#2无法回答。

答案 1 :(得分:0)

2020更新-ElasticSearch 7.8

如文档链接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索引中。