我的客户有几个常用的搜索关键字,包含字母和数字:
M4
M12
M18
M28
当现在在Solr中搜索这些内容时,它们会被标记为完整字符串和字母M
以及数字,因此如果有人搜索M12
,则会执行搜索在M
,12
和M12
。
阻止此操作的最佳方法是什么,以便只搜索M12
?
编辑:想想我应该为字段的类型包含tokenizer / filter配置,所以这里是:
<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" />
答案 0 :(得分:1)
原来解决方案非常简单。 Alex的评论帮助我实现了目标,但我最终只修改了分隔符过滤器,设置splitOnNumerics=0
:
<filter class="solr.WordDelimiterFilterFactory" preserveOriginal="1" splitOnNumerics="0" />