我有一个产品旧代码和新代码。旧产品代码将类似于 000000000000988340 并且正在使用 hybris + solr 搜索。
我已经为 solr 索引设置了属性“oldproductcode”,当我在搜索框中搜索 000000000000988340 时,我得到了结果。 但我想要的是仅使用 988340 而不是使用前导零进行搜索,并且我希望显示结果,我如何在 Solr 设置中做到这一点。
我确实看到了所有这些选项,并且我确实尝试了通配符,但它似乎不起作用,请建议使用以下选项我如何才能完成这项工作
这种方法可能有效(使用 EdgeNGramTokenizerFactory):
在与 Solr 服务器关联的
schema.xml
文件中,添加此新字段类型:
<fieldType name="text_edge_ngram" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.EdgeNGramTokenizerFactory" minGramSize="1" maxGramSize="25"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
</analyzer>
</fieldType>
然后将此自定义分析器应用到您的“oldproductcode”字段:
<field name="oldproductcode" type="text_edge_ngram" indexed="true" stored="true"/>
我希望这有帮助