Unterstützende Typahead-Autovervollständigung mit ElasticSearch

8

Gibt es eine Standardmethode, um typeahead Autocomplete Zeichen-für-Zeichen zu implementieren, die ElasticSearch für kleine Felder (z. B. Ortsnamen) verwenden.

(Zum Zeitpunkt des Verfassens dieses Artikels gibt es eine Reihe von Diskussionen über die Suche, aber nichts, was definitiv erscheint. (Ich sehe auch, dass in Apache Lucene 4 von der Auswirkung der Feature-Unterstützung für Autocomplete / Suggest gesprochen wird). ))

Danke für die Gedanken.

    
wodow 28.11.2012, 20:58
quelle

3 Antworten

9

Sie können den Edge-NGram-basierten Analysator verwenden, siehe Ссылка

Oder verwenden Sie das vorgeschlagene Plugin: Ссылка

HTH

    
dadoonet 28.11.2012, 21:33
quelle
3

Wie David schrieb, können Sie NGrams oder das vorgeschlagene Plugin verwenden. Mit Lucene 4 ist es möglich, automatisch bessere Vorschläge zu machen, ohne dass ein separater Index beibehalten werden muss.

Im Moment können Sie auch einfach eine Terms Facette erstellen Ihr Feld und verwenden Sie ein Regex-Muster, um nur die Einträge zu behalten, die mit dem entsprechenden Präfix beginnen:

%Vor%

Die Regex ist nur ein Beispiel, sie kann verbessert werden und Sie können auch die Groß- und Kleinschreibung ohne Berücksichtigung der Groß- / Kleinschreibung ändern. Regex-Flag . Achte auch darauf, dass die Erstellung einer Facette auf einem Feld, das viele eindeutige Begriffe enthält, keine gute Idee ist, es sei denn, du hast genug Speicher dafür.

    
javanna 29.11.2012 09:24
quelle
3

Verwenden Sie den integrierten Autokomplettierungsvorschlag, der seit Version 0.90.3 verfügbar ist:

Ссылка

Es ist unglaublich schnell und wurde genau für diesen Anwendungsfall entwickelt.

    
Simon Steinberger 05.09.2013 22:06
quelle