Ich weiß, dass Sie die meisten verwendeten Begriffe in einem Index mit Facetten finden können.Wie findet man die am häufigsten verwendeten Ausdrücke in elasticsearch?
Zum Beispiel auf folgende Eingänge:
"A B C"
"AA BB CC"
"A AA B BB"
"AA B"
Begriff Facette gibt diese:
B:3
AA:3
A:2
BB:2
CC:1
C:1
Aber ich frage mich, dass es möglich ist, Gefolgschaften aufzulisten:
AA B:2
A B:1
BB CC:1
....etc...
Ist Gibt es ein solches Feature in ElasticSearch?
Vielleicht versuchen, einen benutzerdefinierten Analysator auf dem Feld zu definieren, die den 'Schindel'-Analysator verwendet. Dies wird Token durch Kombinieren von Wörtern (wie Sie fragen) erstellen. Sie können dann versuchen, festzustellen, ob die Facette die Anzahl der kombinierten Token zurückgibt. Haben Sie einen [sehen Sie sich die ES Docs auf Schindel-Token-Filter] (http://www.elasticsearch.org/guide/reference/index-modules/analysis/shingle-tokenfilter/) – ramseykhalaf
Danke, das könnte funktionieren. Facets gibt Tokens zurück, also wird es wahrscheinlich auch diese phrase_tokens zurückgeben. Aber das ist nicht für bestehende Indizes anwendbar und dies wird die Dateigröße zu sehr erhöhen, oder? Ich werde diese Funktion für täglich 5 GB meiner Daten benötigen. Und nach diesem Tag werde ich es nicht mehr brauchen. Also, ich denke, das beste Ding zu tun, dass 5 GB Daten am Ende des täglichen Index, speichern Sie die Facette Ergebnisse und löschen Sie dann diese neuen Indexdaten. (Dies wird in einer Schleife weitergehen) Weitere Optionen? – shyos
Ich glaube Antwort ist verfügbar unter http://stackoverflow.com/questions/39380463/get-top-100-most-used-three-word-phrases-in-all-documents – AlexG