Frage

Ich habe Rails-Anwendung mit einem Postgres-Backend.

Ich muss Volltextsuche hinzufügen, die unscharfe Suche auf Levenshtein Abstand oder andere ähnliche Metriken erlauben würde. Fügen Sie die Tatsache, dass die Lexer / stemmer hat mit nicht-englischen Worten zu arbeiten (es wäre in Ordnung zu sein, nur sprachabhängigen Switch-Funktionen aus, wenn lexing, um nicht zu verwirren mit der Zielsprache, die von englischem Motor als sinnvolle Worte kann als irrelevant ).

ich denke, Postgres' tsearch wird hier nicht gelten, da es nicht Fuzzy-Suche hat -. Bitte korrigieren Sie mich, wenn ich falsch

Was sind mögliche Kombinationen von Backends & Plugins? Es möchte Lösungen bevorzugen, die weniger auf die Infrastruktur hinzuzufügen (zB wenn Postgres Fuzzy fts haben kann, warum externe Lucene verwenden.); OTOH, die Qualität des Rails-Plugins beteiligt ist ebenso wichtig.

Was würden Sie empfehlen?

Update : scheint, wie ich eher n-Gramm bräuchten basierte Metriken als Levenshtein.

War es hilfreich?

Lösung

Rails + Postgres + Solr + Sunspot

Solr basiert auf Lucene, so dass Sie die Vorteile aller Lucene Funktionen nutzen. Sunspot ist ein ausgezeichneter Rubin Wrapper für Solr API. Sowohl Sunspot und Solr arbeiten gut mit Rails und PostgreSQL, habe ich es für ein Projekt nicht mehr als vor einem Monat.

Andere Tipps

PostgreSQL kommt mit einer Erweiterung namens pg_trgm (im contrib / Verzeichnis). Nach meiner Erfahrung ist es zu langsam (eher wie eine Proof-of-Concept-Implementierung), sondern auch für Ihre Anwendung könnte es funktionieren.

texticle bietet Beta Fuzzy-Suche für Postgres.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top