Ich möchte die Anzahl der Dokumente basierend auf meinen Filterregeln aggregieren und zählen.Aggregiertes gefiltertes Ergebnis mit Elastic Search API
ich an der API von ihrer Website sah: https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-filters-aggregation.html
und kam mit dieser heraus:
{ "size": 0,
"aggregations": {
"messages": {
"filters":{
"filters": {
"knowledge service": { "match": {"syslog_msg": "my-domain.com"}}
}
}
}
}
}
"syslog_msg" Informationen wie "my-domain.com einen anderen Wert" enthalten.
Die Antwort bekam ich:
{
"_scroll_id" : "some scroll id",
"took" : 89,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 1000000,
"max_score" : 0.0,
"hits" : [ ]
},
"aggregations" : {
"messages" : {
"buckets" : {
"knowledge service" : {"doc_count" : 12000}
}
}
}
}
Es scheint, funktioniert gut, aber wenn ich eine Abfrage lief an den 12000 Datensätze zu suchen, nicht exakte Übereinstimmung mit dem String einige von ihnen haben (in diesem Fall meine -domain.com), nach denen ich gesucht habe.
Zum Beispiel haben einige Dokumente die Zeichenfolge "my" in syslog_msg statt "my-domain.com".
Wie ändere ich die Abfrage, so dass es die genaue Übereinstimmung für die Zeichenfolge, die ich suche, filtert?
Die Lösung ist Spiel mit match_phrase zu ersetzen, die die genaue Wort
gefunden sucht und das Rück