SOLR-基于部分搜索进行搜索并带来结果

问题描述 投票:0回答:1

我有一个产品旧代码和新代码。旧产品代码将类似于 000000000000988340 并且正在使用 hybris + solr 搜索。

我已经为 solr 索引设置了属性“oldproductcode”,当我在搜索框中搜索 000000000000988340 时,我得到了结果。 但我想要的是仅使用 988340 而不是使用前导零进行搜索,并且我希望显示结果,我如何在 Solr 设置中做到这一点。

我确实看到了所有这些选项,并且我确实尝试了通配符,但它似乎不起作用,请建议使用以下选项我如何才能完成这项工作

solr sap-commerce-cloud solr-search
1个回答
0
投票

这种方法可能有效(使用 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"/>

我希望这有帮助

© www.soinside.com 2019 - 2024. All rights reserved.