在elasticsearch中,1父类型可以有多种子类型吗?

时间:2017-01-24 05:37:54

标签: amazon-web-services elasticsearch

我知道有一种方法可以使用以下方法在1个父类型中使用弹性搜索获得1个子类型:

PUT /company
{
"mappings": {
"branch": {},
"employee": {
  "_parent": {
    "type": "branch" 
     }
   }
  }
}

我们如何使用1个父类型创建2个子类型关系?

1 个答案:

答案 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