2011-10-03 21 views
0

Solr中以下特殊字符的正則表達式是什麼?針對字符串文字的Solr排序 - PatternReplaceFilterFactory

,〜,!,@,Double Quotes,Single Quote,Brackets,?併爲每個特殊字符。

我的代碼是:

<fieldType name="Custom_sort" class="solr.TextField" sortMissingFirst="true" sortMissingLast="true" positionIncrementGap="100" autoGeneratePhraseQueries="true"> 
     <analyzer type="query"> 
     <tokenizer class="solr.KeywordTokenizerFactory"/> 
     <filter class="solr.LowerCaseFilterFactory" /> 
     <filter class="solr.PatternReplaceFilterFactory" pattern="(#|!|[0-9]|'|~|^|&quot;|[)]|[(])" replacement="" replace="all" /> 
     </analyzer> 
    </fieldType> 

但這不起作用。 如何爲這些特殊字符編寫模式。

回答

4

,而不是處理個別特殊字符使用下面,將刪除除了字母表中的所有特殊字符

<filter class="solr.PatternReplaceFilterFactory" pattern="([^a-z])" replacement="" replace="all" /> 

爲什麼被應用在查詢時分析儀,你會用這個作爲排序字段,需要應用分析在指數時間?

<fieldType name="Custom_sort" class="solr.TextField" sortMissingFirst="true" sortMissingLast="true" positionIncrementGap="100" autoGeneratePhraseQueries="true"> 
    <analyzer type="index"> 
    <tokenizer class="solr.KeywordTokenizerFactory"/> 
    <filter class="solr.LowerCaseFilterFactory" /> 
    <filter class="solr.PatternReplaceFilterFactory" pattern="([^a-z])" replacement="" replace="all" /> 
    </analyzer> 
</fieldType> 
+0

thanks..it works。 – ravidev