在索引之前,我需要删除单词中的撇号。例如,我想让单例汉成为单例汉。我为此使用了solr.ApostropheFilterFactory,但是我认为,此过滤器在solr4之后被弃用,而我正在使用solr5。
这就是我的用法
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.ApostropheFilterFactory"/>
</analyzer>
我也用过StandardFilterFactory
<fieldType name="text" class="solr.TextField">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
</analyzer>
</fieldType>
这些都不对我有用。任何人都可以建议我什么。提前致谢!
最佳答案
使用单词定界符过滤器
该过滤器在单词定界符处分割标记。
确定定界符的规则如下:
<fieldType name="text" class="solr.TextField">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory"/>
</analyzer>
</fieldType>
任何前导或结尾定界符都将被丢弃:“--hot-spot--”->“hot”,“spot”
要么
经典过滤器
<fieldType name="text" class="solr.TextField">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.ClassicFilterFactory"/>
</analyzer>
</fieldType>
注意:如果您在分析器标签中提供type =“index”,则分析器用于索引时间
关于elasticsearch - 在Solr 5.3.1中替换ApostropheFilterFactory,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43093649/