2016-05-18 11 views
0

Ich habe einen ES 2 Index mit ~ 3m Dokumente und ich mache eine signifikante Aggregation auf einem relativ hohen Kardinalfeld (~ 1m Unique-Werte) mit einer klassischen Potenzgesetz-Häufigkeitsverteilung (Einige dieser einzigartigen Werte sind sehr häufig und die meisten anderen bilden einen langen Schwanz mit niedriger Anzahl).Bedeutende Begriffe Aggregation mit Eltern Sampler-Aggregation

Diese Aggregation ist unerschwinglich teuer und langsam, so begann ich in der neuen Funktion ES 2 zu suchen. Es funktioniert als eine übergeordnete Aggregation, die die untergeordnete Aggregation an einer Stichprobe der Daten arbeiten lässt. Ich möchte jedoch besser verstehen, wie es funktioniert, da es wenig Dokumentation zu diesem Thema gibt.

Ich verwende einen shard_size Parameter für die Sampler-Aggregation von 200, und die Ergebnisse, die ich bekomme, unterscheiden sich stark von der Aggregation der Aggregation ohne Stichproben. Manchmal liefert die Stichprobenaggregation auch keine Ergebnisse. Also versuche ich zu verstehen, an welchem ​​Punkt des Prozesses die Stichprobe passiert.

Wenn x ist eine des Eimers in der deutlichen Begriffen Aggregation und y ist die Größe des Korpus gefiltert, dann seine Bedeutung Maßnahme durch so etwas wie significance of x in subset y = [ (count x in y/size y)/(x in corpus/size corpus) ] * [ (count x in y/size y) - (x in corpus/size corpus) ] gemäß der Definition der JLH Punktzahl gegeben.

Wird die Probenahme sofort vor dem Filtern auf den Korpus angewendet oder wird sie auf den gefilterten Satz y angewendet? Ich versuche zu verstehen, warum meine gesampelte Aggregation manchmal keine Ergebnisse liefert, wenn ich weiß, dass es einige geben sollte. Ich habe auch bemerkt, dass, wenn ich den shard_size Parameter der Sampler-Aggregation erhöhe, bekomme ich schließlich einige Ergebnisse.

Antwort

0

Sorry für die lateness- nur gerade über diese Frage kommen :)

Die significant_terms agg standardmäßig abhängig von mindestens 3 Instanzen eines Begriffs in den Ergebnissen auf, die (siehe min_doc_count), bevor es sicher ist, könnte es nützlich sein, . Wenn Ihre Stichprobengröße zu klein ist, werden Sie diesen Schwellenwert für die ausgewählten Begriffe möglicherweise nicht erfüllen. Wenn Sie auch zu viele Shards haben, wird das Leben schwieriger, da es die Antworten auf Ihre Fragen in einem Netzwerk verbreitet. Kleine Stichprobengrößen sind jedoch gut, wenn Ihre Abfrage unscharf ist - sie konzentriert sich auf qualitativ hochwertige Signale mit hohem Signalpegel. Die Auswirkungen dieser Einstellungen sind hier deutlich zu sehen: https://www.youtube.com/watch?v=azP15yvbOBA