如何防止 WordDelimiterFilterFactory 在“.”(点)上拆分

How to prevent WordDelimiterFilterFactory to split on "."(dot)

我想使用 WordDelimiterFilterFactory 满足这样的要求:

input : 500bc

i want to search it with "500bc" or just "500"

为此我使用了 WordDelimiterFilterFactory 和 :

<filter class="solr.WordDelimiterFilterFactory"  preserveOriginal="1"/>  

但现在的问题是它也用 .(dot) 标记化,比如查询“6.25”也会给出“25”作为结果

如何阻止 WordDelimiterFilterFactory 使用 .(点)进行标记化?

尝试在过滤器声明中添加 generateNumberParts="0" 参数,这将防止过滤器根据标点符号拆分数字。您可以在这里查看更多详细信息:https://cwiki.apache.org/confluence/display/solr/Filter+Descriptions#FilterDescriptions-WordDelimiterFilter

我用过

<filter class="solr.WordDelimiterFilterFactory"  generateWordParts="0"   preserveOriginal="1" types="wdfftypes.txt" />  

在wdfftypes.txt我把

. => DIGIT

工作原理:现在 solr 将处理 .作为数字和 6.25 都是数字 WordDelimiterFilterFactory 不会标记 6.25