我正在使用solr的面,我遇到了一个问题,我希望我可以绕开使用过滤器。
基本上,有些时候,一个城镇的名字会传到SOLR那里。
“剑桥”
总有一天会变成
“剑桥”
我想在Solr中使用一个过滤器来阻止城镇名称的尖叫声。似乎有一个菲德勒来制作所有的文本下箱。
<!-- A text field that only sorts out casing for faceting -->
<fieldType name="text_facet" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>我想知道是否有人知道一个过滤器,它会忽略一个单词的第一个字符,并将小写应用于其他字符。例如。
等
或者,如果很容易编写你自己的过滤器。我们希望能就如何做到这一点提供一些帮助。我不是爪哇人。
谢谢
发布于 2010-06-22 09:32:55
也许你可以利用solr.PatternReplaceCharFilterFactory?
<fieldType name="textCharNorm" class="solr.TextField">
<analyzer>
<filter class="solr.LowerCaseFilterFactory"/>
<charFilter class="solr.PatternReplaceCharFilterFactory"
pattern="([^\s]{1})([^\s]*)" replaceWith="\U$1\L$2"/>
</analyzer>
</fieldType>注意,我还没有测试代码或solr.PatternReplaceCharFilterFactory,所以我不确定它是否有效。如果您需要构建自己的过滤器,这个指南可能会很有用:
http://robotlibrarian.billdueber.com/building-a-solr-text-filter-for-normalizing-data/
//约翰
https://stackoverflow.com/questions/2230376
复制相似问题