gpt4 book ai didi

python - 在Elasticsearch聚合器之间建立关系-嵌套分组

转载 作者:行者123 更新时间:2023-12-03 01:32:42 24 4
gpt4 key购买 nike

我需要在字段之间创建嵌套分组。

让我们考虑下面给出的例子,

文件:

 {
"keyword": "abc",
"country": "IN",
"state": "TN",
"city": "Chennai"
},
{
"keyword": "abc",
"country": "IN",
"state": "TN",
"city": "Trichy"
},
{
"keyword": "abc",
"country": "IN",
"state": "KL",
"city": "TVM"
},
{
"keyword": "abc",
"country": "US",
"state": "Cal",
"city": "California"
}

必需的输出(类似这样的东西):
   {
"country": "IN",
"TN": [
"Chennai",
"Trichy"
],
"KL": [
"TVM"
]
},
{
"country": "US",
"Cal": [
"California"
]
}

使用的查询:
 {
"from": 0,
"size": 1,
"aggs": {
"country": {
"terms": {
"field": "country.keyword",
"size": 50000
}
},
"state": {
"terms": {
"field": "state.keyword",
"size": 50000
}
},
"city": {
"terms": {
"field": "city.keyword",
"size": 50000
}
}
},
"query": {
"query_string": {
"query": "(keyword:abc) "
}
}
}

对于此查询,我获得了单独的存储桶作为城市,州和国家/地区的输出。

但是我需要的是城市应该在国家之下分组,而国家应该在国家之下分组。

提前致谢。

最佳答案

以下带有聚合的查询应为您工作

{
"query": {
"query_string": {
"query": "(keyword:abc)"
}
},
"size": 0,
"aggs": {
"country_agg": {
"terms": {
"field": "country.keyword",
"size": 10
},
"aggs": {
"state_agg": {
"terms": {
"field": "state.keyword",
"size": 10
},
"aggs": {
"city_agg": {
"terms": {
"field": "city.keyword",
"size": 10
}
}
}
}
}
}
}
}

关于python - 在Elasticsearch聚合器之间建立关系-嵌套分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54822171/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com