2015-05-07 45 views
0

我們當前的生產指數大小爲1.5 TB,3片碎片。目前,我們有以下字段類型:Solr多語言索引與一個字段

<fieldType name="text_ngram" class="solr.TextField" positionIncrementGap="100"> 
<analyzer type="query"> 
<tokenizer class="solr.KeywordTokenizerFactory"/> 
<filter class="solr.LowerCaseFilterFactory"/> 
</analyzer> 
<analyzer type="index"> 
<tokenizer class="solr.KeywordTokenizerFactory"/> 
<filter class="solr.LowerCaseFilterFactory"/> 
<filter class="solr.CustomNGramFilterFactory" minGramSize="3" maxGramSize="30" preserveOriginal="true"/> 
</analyzer> 
</fieldType> 

和上面的字段類型googling--

後運作良好的clients.Now我們有一些新的中國和日本的客戶在美國和英語,所以http://www.basistech.com/indexing-strategies-for-multilingual-search-with-solr-and-rosette/ https://docs.lucidworks.com/display/lweug/Multilingual+Indexing+and+Search

爲多語種指數最好的辦法,似乎是每approach.Then我想RND與單場方法相關的優點/缺點,這裏是我的新字段類型:

<fieldType name="text_multi" class="solr.TextField" positionIncrementGap="100"> 
<analyzer type="query"> 
<tokenizer class="solr.KeywordTokenizerFactory"/> 
<filter class="solr.CJKWidthFilterFactory"/> 
<filter class="solr.LowerCaseFilterFactory"/> 
<filter class="solr.CJKBigramFilterFactory"/> 
</analyzer> 
<analyzer type="index"> 
<tokenizer class="solr.KeywordTokenizerFactory"/> 
<filter class="solr.CJKWidthFilterFactory"/> 
<filter class="solr.LowerCaseFilterFactory"/> 
<filter class="solr.CJKBigramFilterFactory"/> 
<filter class="solr.CustomNGramFilterFactory" minGramSize="3" maxGramSize="30" preserveOriginal="true"/> 
</analyzer> 
</fieldType> 

我保留了相同的標記器,只是改變了過濾器。它適用於英文文檔的所有現有搜索/使用情況以及中/日文檔的新用例。

  • 現在我有以下問題,以Solr的專家/大師:

    1. 這是一個正確的方法來做到這一點?或者我錯過了什麼?
    2. 你能舉一個例子,說明這個 會出現新字段類型的問題嗎?示例中的用例/場景將非常有用。
    3. 還有什麼問題在未來有不同的客戶來 了嗎?

請提供一些指導或最佳策略。

回答

0

我有字段中鍵入如下

<fieldType name="text_reference" class="solr.TextField" sortMissingLast="true" omitNorms="true" positionIncrementGap="100"> 
<analyzer type="index"> 
<tokenizer class="solr.KeywordTokenizerFactory"/> 
<filter class="solr.LowerCaseFilterFactory"/> 
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="50" side="front"/> 
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="50" side="back"/> 
</analyzer> 
<analyzer type="query"> 
<tokenizer class="solr.KeywordTokenizerFactory"/> 
<filter class="solr.LowerCaseFilterFactory"/> 
</analyzer> 
</fieldType> 

我沒有發現任何問題與它的任何語言。我已經用法語,德語,中文,日語,阿拉伯語,波蘭語,芬蘭語等來驗證它。

我發現你目前使用的那個應該沒有任何語言的問題(我沒有分析過你的fieldType solr分析工具)。

如果您發現任何與您當前的字段類型「text_ngram」有問題,請分享,那麼它會幫助我進行更多的分析。

否則,我建議你去現在的一個。

還有一點,如果更改字段類型,則必須考慮現有索引的重新索引,因爲模式中存在更改。