如何加入elasticsearch父母和孩子(How join parent and child i

2019-10-21 14:19发布

在elasticsearch如何加入家长和孩子? 例如我的映射:

{  
   "street":{  
      "properties":{  
         "street_name":{  
            "type":"string"
         }
      }
   }
}

{  
   "address":{  
      "_parent":{  
         "type":"street"
      },
      "properties":{  
         "house_number":{  
            "type":"string"
         }
      }
   }
}

数据:

{"_type":"street","_id":"AUrLQH9ZcB6int_hskH3","_source":{"street_name":"Street"}}
{"_type":"address","_id":"AUrLQH_XcB6int_hskH4","_source":{"house_number":"10"}}

我怎么能在一个查询得到同样的结果

{  
   "_type":"address",
   "_id":"AUrLQH_XcB6int_hskH4",
   "house_number":"10",

   "street_name":"Street"

}

当然,对于一个单一的元素,我可以加入应用类型,但随着大名单做什么? 谢谢!

Answer 1:

也许这样的事情,不觉得有是很好的将它们分组的方法:

GET /postal_codes/street/_search?search_type=count
{
  "aggs": {
    "street": {
      "terms": {
        "field": "street_name"
      },
      "aggs": {
        "addresses": {
          "children": {
            "type": "address"
          },
          "aggs": {
            "number": {
              "terms": {
                "field": "address.house_number"
              }
            }
          }
        }
      }
    }
  }
}


文章来源: How join parent and child in elasticsearch