es 嵌套字段(nested)聚合统计/查询
背景:person是嵌套字段,类型type=nested,person.id 是他一个子属性,即: [{person.id}, {person.id}, {person.id}]
目的:统计每个person.id 出现的次数
POST /search_lib/_search?scroll=2m
{
"aggregations": {
"test": {
"nested": {
"path": "person"
},
"aggregations": {
"tag_bucket": {
"terms": {
"field": "person.id"
}
}
}
}
}
}
结果:
……
"aggregations" : {
"test" : {
"doc_count" : 3,
"tag_bucket" : {
"doc_count_error_upper_bound" : 0,
"sum_other_doc_count" : 0,
"buckets" : [
{
"key" : "4641944492668096513",
"doc_count" : 8
},
{
"key" : "4641944814140526593",
"doc_count" : 1
},
{
"key" : "4641944814186663937",
"doc_count" : 1
}
]
}
}
}
}
目的:查询person.id包含1或2的数据:
POST /search_lib/_search?scroll=2m
{
"query": {
"bool": {
"must": [
{"nested": {
"path": "person",
"query": {
"terms": {
"person.id": [
"1",
"2",
]
}
}
}}
]}
}
}

浙公网安备 33010602011771号