2013-07-17 40 views
0

我正在實施solr搜索產品,但它在某些情況下不起作用。 例如:Solr search用空白查詢或不區分大小寫和精確匹配

的ProductCode = 030101 01

在schema.xml中我用

<fieldtype name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/> 

<field name="itemcode" type="string" indexed="true" stored="true" required="true"/> 

如果我改變的字段類型即

<fieldType name="text_ws" class="solr.TextField" positionIncrementGap="100"> 
     <analyzer type="index"> 
     <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
     <filter class="solr.ReversedWildcardFilterFactory" withOriginal="true" 
       maxPosAsterisk="2" maxPosQuestion="1" minTrailing="2" maxFractionAsterisk="0"/> 
     <filter class="solr.LowerCaseFilterFactory"/> 
     </analyzer> 
     <analyzer type="query"> 
     <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
     <filter class="solr.LowerCaseFilterFactory"/> 
     </analyzer> 
    </fieldType> 

<field name="itemcode" type="text_ws" indexed="true" stored="true" required="true"/> 

則其搜索的ProductCode = 030101 01,但它也搜索

030101 02 
030101 03 
030101 04 

現在確切搜索不起作用。因爲我有一些產品代碼有小寫字母和大寫字母,那麼它也會在搜索中產生問題。

提前感謝您的時間。 阿樹

回答

0

如果你只需要小寫&精確搜索,你能「WhitespaceTokenizerFactory」 &「ReversedWildcardFilterFactory」期間指數&查詢的字段類型= text_ws刪除?

另請參見「solr.KeywordTokenizerFactory」