我正在尝试将过滤器应用于嵌套的聚合查询。我无法应用该过滤器。
我有如下数据。列表中的嵌套字典(每个字典代表一个地址)。一些地址具有“ geo_location”,而一些则没有。我想找出地址“类型”的计数(汇总查询)。例如:类型1:45000,类型2:40,000,但是我只希望对没有填充“ geo_location”字段的地址进行计数。
"addresses": [
{
"geo_location": {
"lat": 42.407345,
"lon": -83.169199
},
"type": 1,
"addr_id": 26816125,
},
{
"geo_source": "RESIDENTIAL",
"geo_location": {
"lat": 42.352785,
"lon": -83.311244
},
"type": 1,
},
{
"type": 2,
"addr_id": 3374602,
},
{
"type": 2,
"addr_id": 99446474,
}
]
我曾尝试根据类型进行汇总,但是无法为其中没有“ geo_location”字段的地址过滤汇总。
GET /search/_search
{
"size": 0,
"aggs": {
"Nesting": {
"nested": {
"path": "addresses"
},
"aggs": {
"keyword_names": {
"terms": {
"field": "addresses.type",
"size": 100
} }
}
}
}
}
result:
{
"key": 1,
"doc_count": 671
},
{
"key": 2,
"doc_count": 88
},
{
"key": 4,
"doc_count": 44