Solr中以下特殊字符的正则表达式是什么。
我的代码是:
<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]|'|~|^|"|[)]|[(])" replacement="" replace="all" />
</analyzer>
</fieldType>
但这不起作用。 如何为这些特殊字符编写模式。
答案 0 :(得分: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>