2009-05-01 131 views
1

我正在設置索引多種語言的Solr搜索引擎。我創建了一個自定義的UpdateProcessorFactory來確定輸入文本的哪些部分是哪種語言,然後將文檔的這些部分複製到語言特定的字段中。例如,用以下文字:多語言Solr搜索索引

「Hello World,Bonjour le Monde,Hallo Welt。」

它將「Hello World」複製到文本字段中,將「Bonjour le Monde」複製到fr文本字段中,並將「Hallo Welt」複製到解除文本字段中。每個領域都有適當的語言分析器來標記和扼殺詞彙。

最後,我想爲用戶輸入一個框,以輸入將在所有語言中搜索的搜索詞。搜索條件不需要翻譯,但它們應該適當地加以阻止。什麼是完成這個最好的方法?我也很關心搜索的性能。

回答

8

最好的方法是使用DisMaxRequestHandler。它將適當地分析每個字段的適當語言(如schema.xml中定義的)。

所以,如果您的查詢看起來像 /Solr的/選擇?QT = dismax & QF = EN-文本%20FR文本%20de文本& Q =你好%的世界 的Solr會做正確的事。

(假設你配置dismax如在solrconfig.xml中一個requestHandler塊solr.DisMaxRequestHandler)

大多數分析是快速。你的表現範圍主要取決於你的指數大小,總學期數量等。一定要根據他們wiki上的solr perfomance指南調整一切。目前我正在運行一個60GB的索引,並繼續在硬件上在100ms以下的範圍內進行搜索,這些並不是那麼有趣。