2017-11-19 2 views
5

Ich arbeite gerade an einem Projekt, bei dem wir Textinhalte in SOLR indiziert haben. Jeder Inhalt ist in einer bestimmten Sprache geschrieben (wir haben 4 verschiedene europäische Sprachen) aber wir möchten ein Feature hinzufügen, dass, wenn die primäre Suche (vom Benutzer eingegebener Suchtext) nicht viel Ergebnis zurückgibt, wir versuchen auch zu suchen Dokument in anderen Sprachen. Daher müssten wir die Abfrage irgendwie übersetzen. Unsere Basis ist, dass wir eine Kartierungsliste von übersetzten Wörtern haben können, die häufig im Projektbereich verwendet werden.Solr mehrsprachige Suche

Eine Lösung, die zu mir kam, war die Verwendung der Synonymsuchfunktion. Aber dies liefert möglicherweise nicht die besten Ergebnisse.

Haben die Benutzer Hinweise auf vorhandene Module, die uns helfen könnten, diese mehrsprachige Suchfunktion zu erreichen? Oder Konzeptionsideen, die wir kalt untersuchen wollen?

Dank

Antwort

3

Es ist wie mehrsprachige Suche scheint, ist kein einzigartiges Problem.

Bitte nehmen Sie sich einen Blick http://lucene.472066.n3.nabble.com/Multilingual-Search-td484201.html und Solr index and search multilingual data

diese beiden Links vorschlagen für jede Sprache gewidmet haben Felder, aber Sie können auch ein Feld haben, die Sprache heißt es, und Sie können Filterabfrage (& fq hinzufügen =) für die Sprache, die Sie erkannt haben (aus Benutzerabfrage). Das ist eine besser skalierbare Lösung, denke ich.

+0

https://www.rosette.com/blog/indexing-strategien-for-multilingual-search-with-solr-and-rosette – cheffe

+1

http://smalldirector.github.io/solr-multilingual-analyzer – cheffe

1

Eine Option wäre, dass Sie Ihre Begriffe zum Indexzeitpunkt übersetzen, dies könnte wahrscheinlich auf Solr-Ebene oder sogar vor Solr auf Anwendungsebene geschehen, und dann die übersetzten Texte in verschiedenen Feldern speichern, so dass Sie Felder mögen :

text_en: "Hello", 
text_fi: "Hei" 

Dann können Sie Text_en einfach abfragen: Hallo und es würde übereinstimmen.

Und wenn Sie primäre Sprache Übereinstimmungen höher punkten möchten, könnten Sie ein primary_language Feld haben und dann Dokumente erhöhen, wo es mit der Suchsprache höher übereinstimmt.