【问题标题】:Unable to do partial word search in Solr 8.6.0无法在 Solr 8.6.0 中进行部分单词搜索
【发布时间】:2020-09-29 17:57:35
【问题描述】:

我的 _fiscalyear 值为 2019-2020 的记录很少,但我无法搜索文本 2019 或 2020。我可以搜索 2019-2020。

我使用的查询是https://solr.xyz:8983/solr/mycore/select?q=2019&qf=_fiscalyear&defType=edismax

下面是架构文件中的 _fiscalyear 配置


<field name="_fiscalyear" type="text_general" indexed="true" stored="true" required="false" multiValued="false" />

<copyField source="_fiscalyear" dest="text_en"/>

【问题讨论】:

    标签: solr


    【解决方案1】:

    添加

    <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15" /> under 
    
          <analyzer type="index">
    

    修复了问题

    【讨论】:

    • 那不会在 2020 年有效吗?如果您的标记器尚未在 - 上拆分,那么您最终将得到 2020120192019-2019-2 等作为标记,并且没有 2020自己。
    • 你是对的。那么我该如何在索引级别处理呢?
    • 使用 NGramFilterFactory 代替 EdgeNGramFilterFactory 解决了这个问题。现在我也可以 2020 年了
    • 如果您只想搜索整数(即使您只搜索 20 也会给出结果 - 如果这是您想要的,请保持原样),您将最好使用在- 上拆分的标记器,或者使用 WordDelimiterGraphFilter 来代替。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多