Ich habe Dokumente in Elasticsearch mit folgenden Struktur:Unable Ergebnis Eimer in Bezug auf der Aggregation fallen - Elasticsearch
"mappings": {
"document": {
"properties": {
"@timestamp": {
"type": "date",
"format": "strict_date_optional_time||epoch_millis"
},
"@version": {
"type": "string"
},
"id_secuencia": {
"type": "long"
},
"event": {
"properties": {
"elapsedTime": {
"type": "double"
},
"requestTime": {
"type": "date",
"format": "strict_date_optional_time||epoch_millis"
},
"error": {
"properties": {
"errorCode": {
"type": "string",
"index": "not_analyzed"
},
"failureDetail": {
"type": "string"
},
"fault": {
"type": "string"
}
}
},
"file": {
"type": "string",
"index": "not_analyzed"
},
"messageId": {
"type": "string"
},
"request": {
"properties": {
"body": {
"type": "string"
},
"header": {
"type": "string"
}
}
},
"responseTime": {
"type": "date",
"format": "strict_date_optional_time||epoch_millis"
},
"service": {
"properties": {
"operation": {
"type": "string",
"index": "not_analyzed"
},
"project": {
"type": "string",
"index": "not_analyzed"
},
"proxy": {
"type": "string",
"index": "not_analyzed"
},
"version": {
"type": "string",
"index": "not_analyzed"
}
}
},
"timestamp": {
"type": "date",
"format": "strict_date_optional_time||epoch_millis"
},
"user": {
"type": "string",
"index": "not_analyzed"
}
}
},
"type": {
"type": "string"
}
}
}
}
Und ich brauche zum Abrufen eine Liste von eindeutigen Werten für das Feld „event.file“ (um zu zeigen, in einer Kibana Datentabelle) nach folgenden Kriterien:
Es ist mehr als ein Dokument mit dem gleichen Wert für das Feld „event.file“
Alle
die Vorkommen für diesen Wert von „event.file“ haben dazu geführt, Fehler (Feld „event.error.errorCode“ existiert in allen Dokumenten)
Zu diesem Zweck den Ansatz, den ich habe Getestet wurde die Verwendung von Begriffe Aggregation, so kann ich eine Liste von Buckets mit allen Dokumenten für einen einzigen Dateinamen erhalten. Was ich nicht erreichen konnte, ist einige der resultierenden Buckets in der Aggregation gemäß den vorherigen Kriterien zu löschen (wenn mindestens einer von ihnen keinen Fehler hat, sollte der Bucket verworfen werden).
Ist dies der richtige Ansatz oder gibt es einen besseren/einfacheren Weg, diese Art von Ergebnis zu erhalten?
Vielen Dank.