问题陈述
我有一个ElasticSearch索引,它存储了城市的名称及其ID。它看起来像这样:
{
"usr" : "plore113"
"cityName": "New York",
"cityId": "150p7"
},
{
"usr" : "plore114"
"cityName": "Delhi",
"cityId": "171x9"
}
我正在做一个汇总,把所有城市的名字都收集起来,还有他们的身份证。我通过这个来做到:
{
"size": 0,
"aggs": {
"cName": {
"terms": {
"field": "cityName.keyword",
"size": 1000
},
"aggs": {
"cId": {
"terms": {
"field": "cityId.keyword",
"size": 1
}
}
}
}
}
}
这和预期一样工作,但是现在我有了不同的要求,我现在将cityName和cityId作为数组。(名称和ID将与数组索引Map)。
示例:
cityName: ["New York", "Delhi", "Mumbai"],
cityId: ["150p7", "171x9", "183l0"]
我现在如何使用子聚合来运行接收cityNames及其Id的相同聚合?
先谢谢你了。
1条答案
按热度按时间vx6bjr1n1#
试试这个,它构建了一个runtime_field来同时过滤cityName和cityId。