2017-11-19 96 views
5

Obecnie pracuję nad projektem, w którym mamy indeksowaną treść tekstową w SOLR. Każda treść jest napisana w jednym konkretnym języku (mamy 4 differents języków europejskich), ale chcielibyśmy dodać funkcję, która, jeśli wyszukiwanie podstawowe (tekst wyszukiwania wprowadzony przez użytkownika) nie zwraca dużo wyników, to staramy się również szukać dokument w innych językach. W ten sposób musieliśmy przetłumaczyć zapytanie. Naszą podstawą jest to, że możemy mieć listę odwzorowań przetłumaczonych słów powszechnie używanych w dziedzinie projektu.Solr wielojęzyczne wyszukiwanie

Jednym z rozwiązań, które do mnie przyszło było użycie funkcji wyszukiwania synonimów. Ale może to nie zapewniać najlepszych wyników.

Czy ludzie mają wskazówki na temat istniejących modułów, które mogą nam pomóc w osiągnięciu tej wielojęzycznej funkcji wyszukiwania? Lub pomysły na wyobrażenia, które my zimno próbujemy zbadać?

Dzięki

Odpowiedz

3

Wydaje się, wielojęzycznego wyszukiwania nie jest wyjątkowy problem.

Proszę spojrzeć http://lucene.472066.n3.nabble.com/Multilingual-Search-td484201.html i Solr index and search multilingual data

te dwa linki sugerować, że dedykowane pola dla każdego języka, ale można też mieć pole, które stwierdza język, a można dodać zapytanie filtra (& FQ =) dla wykrytego języka (z zapytania użytkownika). To chyba bardziej skalowalne rozwiązanie.

+0

https://www.rosette.com/blog/indexing-strategies-for-ultulting-with-solr-androsette – cheffe

+1

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

1

Jedną opcją jest tłumaczenie terminów w czasie indeksowania, prawdopodobnie na poziomie Solr lub nawet przed Solr na poziomie aplikacji, a następnie zapisanie przetłumaczonych tekstów w różnych polach, tak aby pola były takie jak :

text_en: "Hello", 
text_fi: "Hei" 

Następnie można po prostu zapytać text_en: Hello i pasowałoby.

Jeśli chcesz zdobyć wyższe wyniki w zakresie języka podstawowego, możesz mieć pole primary_language, a następnie podbić dokumenty, w których jest ono lepsze.