У меня много значений в одном поле, когда я делаю агрегирование, я получаю эти значения как отдельные значения.
Пример:
name : jess , Region : new york
name : jess , Region : poland
запрос:
query = {
"size": total,
"aggs": {
"buckets_for_name": {
"terms": {
"field": "name",
"size": total
},
"aggs": {
"region_terms": {
"terms": {
"field": "region",
"size": total
}
}
}
}
}
}
с response["aggregations"]["buckets_for_name"]["buckets"]
получаю :
{'key': 'jess ', 'doc_count': 61, 'region_terms': {'doc_count_error_upper_bound': 0, 'sum_other_doc_count': 0, 'buckets': [{'key': 'oran', 'doc_count': 60}, {'key': 'new ', 'doc_count': 1}, {'key': 'york', 'doc_count': 1}]}}, {'key': 'jess ', 'doc_count': 50, 'egion_terms': {'doc_count_error_upper_bound': 0, 'sum_other_doc_count': 0, 'buckets': [{'key': 'poland', 'doc_count': 50}]}}
с
pretty_results = []
for result in response["aggregations"]["buckets_for_name"]["buckets"]:
d = dict()
d["name"] = result["key"]
d["region"] = []
for region in result["region_terms"]["buckets"]:
d["region "].append(region ["key"])
pretty_results.append(d)
print(d)
я получаю :
{'name': 'jess ', 'region ': ['new' , 'york', 'poland']}
Я хочу получить такой результат:
{'name': 'jess ', 'region ': ['new york', 'poland']}