我知道有一种方法可以使用以下方法在1个父类型中使用弹性搜索获得1个子类型:
PUT /company
{
"mappings": {
"branch": {},
"employee": {
"_parent": {
"type": "branch"
}
}
}
}
我们如何使用1个父类型创建2个子类型关系?
答案 0 :(得分:0)
是的,你可以,对于孩子/父母关于路由的想法没有限制,这意味着父母和孩子必须保存在一个分片中。
但是1个孩子只有1个父母有限制。
从技术上讲,您可以让母公司拥有多个子女,如承包商,员工。
POST /city/company/_search
{
"query": {
"bool": {
"should": [
{
"has_child": {
"type": "contractors",
"score_mode": "max",
"query": {
"match": {
"name": "Alice Smith"
}
}
}
},
{
"has_child": {
"type": "employee",
"score_mode": "max",
"query": {
"match": {
"name": "Alice Smith"
}
}
}
}
],
"minimum_should_match": 1
}
}
}
因此,此查询将在索引城市中搜索具有匹配名称 Alice Smith
的员工或承包商类型文档的公司有关关系的更多信息read here