Ich möchte eine Aggregation implementieren, die nur die Dokumente zurückgibt, deren Häufigkeit über einem bestimmten Schwellenwert liegt.Elasticsearch Java API: Aggregationsfilter für Belegzählungen
Zum Beispiel, hier ist die Aggregation
AggregationBuilder aggregation = AggregationBuilders
.terms("agg").field("column_name");
in
column_name
jetzt
[{"doc_count":30,"key":"val1"},{"doc_count":29,"key":"val2"},{"doc_count":23,"key":"val3"}]
für jeden Wert
so das gibt mir die Zählungen der Dokumente alle Dokumente mit ihren Zählungen zu bekommen, lässt sag ich will nicht alle diese Dokumente. Ich will nur diejenigen, die eine doc_count
größer als 25
Also das ideale Ergebnis
[{"doc_count":30,"key":"val1"},{"doc_count":29,"key":"val2"}]
würde sein wie kann ich einen solchen Filter auf meine Aggregation anwenden? Ich habe FilterBuilders
betrachtet und Aggregationen gefiltert, aber sie dienen zum Anwenden von Filtern auf alle Werte in den Dokumenten. Zum Beispiel kann ich einen Filter anwenden, um nur die Dokumente zu erhalten, wo val1 == xza
für
ist, aber das ist nicht was ich suche. Ich möchte einen Schwellenwert für die doc_cunt
Werte anwenden, nachdem die Aggregation angewendet wurde.
Ist das möglich? Ich verwende elasticsearch java api Version 1.7.2
danke! Das war's – AbtPst