如何防止 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
我想使用 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