【问题标题】:Solr query with words containing letters and numbersSolr 查询包含字母和数字的单词
【发布时间】:2015-03-12 03:53:34
【问题描述】:

我的客户有几个常用搜索关键字,其中包含字母和数字:

M4
M12
M18
M28

当现在在 Solr 中搜索这些时,它们将被标记为完整字符串和字母 M 以及数字,因此如果有人搜索 M12,则搜索将在 M 上执行、12M12

防止这种情况的最佳方法是什么,所以它只搜索M12

编辑:我想我应该包括字段类型的标记器/过滤器配置,所以它是:

<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" preserveOriginal="1" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.SnowballPorterFilterFactory" language="English" />

【问题讨论】:

  • 我想你只需要取出单词分隔符过滤器。也许使用内置的 type="string" 定义您的字段,而不是调用此自定义类型。

标签: solr solrnet


【解决方案1】:

结果证明解决方案非常简单。亚历克斯的评论帮助我到达那里,但我最终只是修改了单词分隔符过滤器,设置splitOnNumerics=0

<filter class="solr.WordDelimiterFilterFactory" preserveOriginal="1" splitOnNumerics="0" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-27
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    相关资源
    最近更新 更多