如何在弹性搜索中加入父母和孩子 [英] How join parent and child in elasticsearch

查看:143
本文介绍了如何在弹性搜索中加入父母和孩子的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在弹性搜索中加入父母?
例如我的映射:

  {
street:{
properties :$ {



$ c>

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

数据:

  {_ type:street,_ id AU_LQH9ZcB6int_hskH3,_ source:{street_name:Street}} 
{_type:address,_ id:AUrLQH_XcB6int_hskH4,_ source:{house_number我们可以在一个查询中获得类似的结果

p>

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

street_nam e:街

}

当然,元素,我可以加入应用程序中的类型,但是如何处理大型列表?
谢谢!

解决方案

也许这样的事情,不要以为有很好的分组方式: / p>

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


How join parent and child in elasticsearch? For example my mapping:

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

and

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

Data:

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

How i can get similar result in one query:

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

   "street_name":"Street"

}

Of course, for a single element, i can join types in application, but what to do with large lists? Thanks!

解决方案

Maybe something like this, don't think there is a way of grouping them nicely:

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"
              }
            }
          }
        }
      }
    }
  }
}

这篇关于如何在弹性搜索中加入父母和孩子的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆