我有一个产品的旧代码和新代码。旧的产品代码会像0000000000988340和我使用hybris + solr搜索。我已经为Solr索引设置了“oldproductcode”属性,当我在搜索框中搜索00000000000988340时,我得到了结果。但我想要的是只使用988340搜索,而不是使用前导零,我希望显示结果,我怎么能在Solr设置中做到这一点。我看到所有这些选项,我没有尝试过的搜索引擎,它似乎不工作,请建议使用以下选项,我如何才能使这一工作
的数据
hiz5n14c1#
这种方法可能有效(使用EdgeNGramTokenizerFactory):在与Solr服务器关联的schema.xml文件中,添加以下新fieldType:
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"/>
型我希望这能帮助
xeufq47z2#
我只是启用了下面的选项与前缀,它开始工作.感谢所有的帮助.
2条答案
按热度按时间hiz5n14c1#
这种方法可能有效(使用EdgeNGramTokenizerFactory):
在与Solr服务器关联的
schema.xml
文件中,添加以下新fieldType:字符串
然后将此自定义分析器应用于“oldproductcode”字段:
型
我希望这能帮助
xeufq47z2#
我只是启用了下面的选项与前缀,它开始工作.感谢所有的帮助.
的数据