[英]Dollar sign in PatternReplaceFilterFactory
在Solr中,我希望“ a $ ap”找到“ asap”以及“ a $ ap”。 為此,我將其添加到schema.xml中的索引和查詢分析器中並重新索引:
<filter class="solr.PatternReplaceFilterFactory" pattern="$" replacement="s"/>
但是,“ a $ ap”僅返回“ a $ ap”,“ asap”僅返回“ asap”。 這可能是一些愚蠢的語法問題,但我不知道這是怎么回事!
您應該轉義$,因為它是正則表達式的特殊字符,表示結尾。
采用 :-
<fieldType name="test" class="solr.TextField" sortMissingLast="true" omitNorms="true">
<analyzer>
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.PatternReplaceFilterFactory" pattern="\$" replacement="s" replace="all" />
</analyzer>
</fieldType>
以上字段完美替代了它。
最后,我用MappingCharFilterFactory修復了它。
我將此添加到索引和查詢分析器中:
<charFilter class="solr.MappingCharFilterFactory" mapping="mapping.txt"/>
其中mapping.txt如下所示:
"$" => "s"
重新索引后,這樣做就成功了!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.