2011-05-27 159 views
1

我想知道如何配置Solr進行多語言搜索。我有一個網站有Solr搜索。這是爲英語工作,我想爲所有語言工作。Solr多語言搜索

下面是我的架構..

<field name="url" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
     <field name="title" type="text" indexed="true" stored="true" required="false" multiValued="false" /> 
     <field name="content" type="text" indexed="true" stored="true" required="true" multiValued="false" /> 
     <field name="contenttype" type="string" indexed="true" stored="true" required="false" multiValued="false" /> 
     <field name="contentsize" type="integer" indexed="false" stored="true" required="false" multiValued="false" /> 
     <field name="timestamp" type="date" indexed="true" stored="true" required="false" multiValued="false" /> 
     <field name="language" type="string" indexed="true" stored="true" required="false" multiValued="false" /> 
     <field name="description" type="text" indexed="true" stored="true" required="false" multiValued="false" /> 
     <field name="keywords" type="text" indexed="true" stored="true" required="false" multiValued="false" />  
    <field name="keywordsNoneStemmed" type="string" indexed="true" stored="true" required="false" multiValued="true" />  
     <field name="thumbnail" type="string" indexed="true" stored="true" required="false" multiValued="false" /> 
    <field name="virtualitem" type="boolean" indexed="true" stored="true" required="false" multiValued="false" /> 
    <field name="section" type="string" indexed="true" stored="true" required="false" multiValued="false"></field> 
    </fields> 

當我看到日誌文件被Solr的索引以不同語言的網址,但我不知道如何展現搜索結果。我的網站正在使用.NET技術

回答

0

沒有魔法彈。如果您知道輸入文本的語言,那麼您可以將語言存儲在不同的字段中,並根據語言使用不同的詞幹。或者你可以避免使用stemmers,而是使用ngrams。

如果您繼續使用停用詞和受保護詞,那麼您需要編輯這些詞,以免它們過於激進。例如,「is」和「by」是英語中的停用詞,但它們的意思是許多斯堪的納維亞語言中的「冰」和「城鎮」。因此,您可以將它們從停用詞中刪除,但是您可能想要添加「je」和「il」,因爲它們是法語停用詞。但是「je」在荷蘭語和塞爾維亞語等語言中有不同的含義,因此可能不會...

首先通過修剪標記器,分析器,過濾器鏈,然後用流利的其他語言進行一些測試。讓他們向你展示奇怪的結果,並解釋他們爲什麼奇怪。看看東方語言,因爲ngram是真正處理它們的唯一方法。