Ich habe eine zwei Felder Unteraggregationen: `['field1', 'field2']. Beide Felder sind Term-Aggregationen. Die Art und Weise, wie elasticsearch Aggregationen zurückgibt, ist bei all diesen Buckets und Verschachtelung und Bucket-Verschachtelung nicht sehr praktisch. Ich habe Schwierigkeiten auf die Umwandlung Elasticsearch Ergebnisse zur Liste dicts, zBElasticsearch Daten in strukturiertere Form
Elasticsearch gefälschte Ergebnisse:
'aggregations':{
'field1':{
'buckets':[
{
'key':'value1',
'field2':{
'buckets':[
{
'key':'1.1.1.1',
'doc_count':15
},
{
'key': '2.2.2.2',
'doc_count': 12
}
]
}
},
{
'key': 'value2',
'field2': {
'buckets': [
{
'key': '3.3.3.3',
'doc_count': 15
},
{
'key': '4.4.4.4',
'doc_count': 12
}
]
}
},
{
'key': 'value3',
'field2': {
'buckets': [
{
'key': '5.5.5.5',
'doc_count': 15
},
{
'key': '6.6.6.6',
'doc_count': 12
}
]
}
}
]
}
}
ich das Ergebnis möchte in Form dies sein:
[{'field1':'value1', 'field2':'1.1.1.1'},
{'field1':'value1', 'field2':'2.2.2.2'},
{'field1':'value2', 'field2':'3.3.3.3'},
{'field1':'value2', 'field2':'4.4.4.4'},
{'field1':'value3', 'field2':'5.5.5.5'},
{'field1':'value3', 'field2':'6.6.6.6'} ]
wie ein normale Datenbank mit Zeilen und Spalten. Der Aggregationsname muss der erforderliche Spaltenname sein. Ich habe überlegt, eine Baumdarstellung der Daten zu verwenden und dann nach dem Erstellen der Baumdatenstruktur mit dfs jede Zeile der Ergebnisse zu erstellen. Aber brauchen Sie einen Platz, um anzufangen.
Warum nicht die Eimer auf der Client-Seite Parsen? 2-3 Zeilen Python würden dafür sorgen, dass Ihr Ergebnis in die gewünschte Struktur umgewandelt wird. – Val
@Val Ich spreche von Client-Seite. Es ist meiner Meinung nach kein einfaches Problem. Kibana macht es im Frontend zwei mit einem ähnlichen Ansatz mit verknüpften Listen und die Buckets und Metriken durchlaufen – Apostolos