solr WordDelimiterGraphFilterFactory,从数字中删除0

solr WordDelimiterGraphFilterFactory, remove 0 from digits

我的文档中有这个字段:

<fieldType name="signature" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="index">
          <tokenizer class="solr.WhitespaceTokenizerFactory"/>
          <filter class="solr.WordDelimiterGraphFilterFactory" preserveOriginal="1" catenateWords="1" catenateNumbers="1" catenateAll="1"/>
          <filter class="solr.LowerCaseFilterFactory"/>
        </analyzer>

        <analyzer type="query">
          <tokenizer class="solr.WhitespaceTokenizerFactory"/>
          <filter class="solr.LowerCaseFilterFactory"/>
        </analyzer>
</fieldType>

我正在为 MUS.F.0594 这样的字符串编制索引 我能够搜索并获得正确的查询结果,例如:

musf0594 
mus f 0594
mus.f.0594

我也想搜索类似

的查询
musf594
mus f 594
mus.f.594

我需要删除其他数字之前的前导 0。 如何在 solr 索引分析器中执行此操作?

您可以尝试添加 PatternReplaceFilterFactory

<filter class="solr.PatternReplaceFilterFactory" pattern="^0+" replacement="" replace="all" />

修改字段类型并重新加载集合后。可以在solr管理页面分析fieldType

这是分析页面的截图。

第一个截图

第二张截图