我在从 solr 索引中剥离标点符号时遇到问题
当标点符号紧跟在一个词之后时,则该词未正确编入索引。
例如:如果我们索引“hello, John”,则不会通过关键字“hello”找到该 Assets ,而如果我们在单词“hello”之后删除逗号则没有问题。
是否有任何过滤器工厂可以去除标点符号?有任何想法吗?
谢谢,
博格丹。
最佳答案
您可以使用 solr.PatternReplaceFilterFactory
用这个去掉开头和结尾的标点符号:
<filter class="solr.PatternReplaceFilterFactory"
pattern="^\p{Punct}*(.*?)\p{Punct}*$"
replacement="$1"/>
如果你想去掉开头和结尾的所有标点符号,除了(例如)单词前面的美元符号,你可以使用这个:
<filter class="solr.PatternReplaceFilterFactory"
pattern="^[\p{Punct}&&[^$]]*(.*?)\p{Punct}*$"
replacement="$1"/>
关于Solr:在索引前去除标点符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3149850/