2014-07-15 148 views
2

我們正在使用Lucene.net在我們的應用程序搜索的Lucene索引策略,我們以誠信的方式做到這一點,現在我們需要支持多語言,所以我想問一下,我們應該爲索引使用什麼樣的策略,在不同的索引文件夾中使用不同的分析器索引不同的語言,使用不同的分析器索引文件夾,具有文檔,英語語言和其他語言字段的索引文件夾相同(我們的結果是每個語言都有太多的字段bt重複字段)還是有其他選擇? 普拉Thokal與多語言支持

回答

3

理想的策略是有一個額外的語言領域和其他領域存在可以在內容在許多語言。語言字段的值爲多語言字段動態選擇不同的語言分析器。 但實際上,一個字段將會有多種語言的內容影響術語統計。

由於Lucene中的術語是字段:術語,對於具有常見單詞的語言,術語統計將成爲一個問題,特別是如果在一種語言中該術語是一個經常使用的詞,而在其他語言中則是不常見的詞。最糟糕的情況是一種語言中的停用詞和其他語言中的重要術語。如果是這樣的話,這是一個不行的策略。但是,對於您的語言設置,可能不會對統計術語產生影響,並且不同語言的詞彙表是相互排斥的。在這種情況下,您可能會期望TFIDFSimilarity正常工作。如果你使用其他相似類,如果TFIDF工作,他們應該大多工作。

對於其他策略:

它肯定取決於 一)無語言支持(比如M) b)否這就需要使用多種語言領域(比如說N)

萬一。 m和n少,那麼你可以去multifields方法:

(en -english, jp - Japanese, fr - French) 
field1_en, field1_jp , field1_fr, 
field2_en, field2_jp , field2_fr. 

除非你打到m * n個超過1000+領域,這是一個安全的策略。當沒有任何字段很大時,Lucene的性能會下降。

如果沒有語言非常少那麼不同的索引文件夾(不同的模式)可以工作 - 但請注意,如果你需要返回來自不同語言的結果,它在許多搜索引擎的關注。彈性搜索雖然做得很好。

+0

我的單文檔中有近50場,而我計劃支持7-8語言會是怎樣進行索引的最佳策略和搜索以維持性能。 –