Ich brauche ein Array zu aggregieren alsAggregieren Array von Werten in Elasticsearch
Zwei Dokument Beispiele folgt:
{
"_index": "log",
"_type": "travels",
"_id": "tnQsGy4lS0K6uT3Hwzzo-g",
"_score": 1,
"_source": {
"state": "saopaulo",
"date": "2014-10-30T17",
"traveler": "patrick",
"registry": "123123",
"cities": {
"saopaulo": 1,
"riodejaneiro": 2,
"total": 2
},
"reasons": [
"Entrega de encomenda"
],
"from": [
"CompraRapida"
]
}
},
{
"_index": "log",
"_type": "travels",
"_id": "tnQsGy4lS0K6uT3Hwzzo-g",
"_score": 1,
"_source": {
"state": "saopaulo",
"date": "2014-10-31T17",
"traveler": "patrick",
"registry": "123123",
"cities": {
"saopaulo": 1,
"curitiba": 1,
"total": 2
},
"reasons": [
"Entrega de encomenda"
],
"from": [
"CompraRapida"
]
}
},
ich die cities
Array aggregieren möchten, um herauszufinden, alle cities
die traveler
ist gegangen zu. Ich möchte etwas wie folgt aus:
{
"traveler":{
"name":"patrick"
},
"cities":{
"saopaulo":2,
"riodejaneiro":2,
"curitiba":1,
"total":3
}
}
Wo die total
die Länge des cities
Array minus 1. Ich nehme die Bedingungen Aggregation und die Summe versucht, aber konnte die gewünschte Ausgabe nicht ausgegeben.
Änderungen in der Dokumentstruktur können vorgenommen werden, wenn mir so etwas helfen würde, würde ich mich freuen zu wissen.
Haben Sie eine Zuordnung für diesen Index, den Sie freigeben können? –