Solr:索引前的脱衣舞标点符号
-
01-10-2019 - |
题
当单词后标点符号跟随时,我在从SOLR索引上脱离标点符号有问题,那么这个词不能正确地索引。
例如:如果我们为“ Hello,John”索引,则将通过关键字“ Hello”找到资产,而如果我们在Word“ 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"/>
这是通过WordDelimiterFilterFactory完成的。 SET GERTATEWORDPARTS = 1。
还有 patterntokenizerFactory 可以使用,但是我从未尝试过。
使用Pattern ReplaceFilterFactory
<!-- remove punctuation -->
<filter class="solr.PatternReplaceFilterFactory" pattern="^(\p{Punct}*)(.*?)(\p{Punct}*)$" replacement="$2"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
...
不隶属于 StackOverflow