2013-09-27 86 views
1

我在字段類型爲text_ws的文檔字段中強調了分隔和駝峯大小寫值(eq「SimplyShopping_Rediff」)。solr查詢分析器下劃線

<fieldType name="text_ws" class="solr.TextField" 
    positionIncrementGap="100"> 
    <analyzer type="index"> 
     <tokenizer class="solr.PatternTokenizerFactory" pattern=";" /> 
     <filter class="solr.LowerCaseFilterFactory" /> 
    </analyzer> 
    <analyzer type="query"> 
     <tokenizer class="solr.PatternTokenizerFactory" pattern=";" /> 
     <filter class="solr.LowerCaseFilterFactory" /> 
    </analyzer> 
</fieldType> 

有沒有什麼辦法可以改變查詢分析器而不用重新索引,這樣我就可以在Shopping或Rediff上搜索。

+0

這就是你從solr樣本中調用'text_ws'字段類型嗎?如果沒有,你可以發佈嗎? – cheffe

+0

\t \t <過濾器類= 「solr.LowerCaseFilterFactory」/> <分析器類型= 「查詢」> \t \t Deepak

回答

0

不,你的情況不是。

您定義的fieldType使用模式;來標記文本。標記文本意味着將單詞流分解爲索引標記(又名詞或詞)。

你的榜樣SimplyShopping_Rediff呆在那裏是在它沒有;,所以整個文本被認定爲一個令牌,將被視爲正是令牌到你的索引。你可以大寫,小寫,幹或過濾它,但你不能再分裂它。

即使您要更改fieldType,以便在查詢時標記您希望的方式。您的索引中的令牌仍然存在缺陷,因爲它們在索引時間已經被錯誤地標記了。因此,您的搜索的新正確標記化條款將不會在索引中產生任何影響。索引中沒有命中,沒有搜索結果。

在solr參考指南是a good section about Analyzers, Tokenizers and Filters。由於重建整個索引可能非常昂貴,所以我建議先閱讀本文。