我正在使用需要让abc匹配Abc和400匹配400(用户名匹配)的查询模式。
但是我在使用时发现LowerCaseFilterFactory,查询时它没有返回任何结果400。我深入研究了源代码,发现了LowerCaseTokenizerFactoryuse LowerCaseTokenizerwhich extends LetterTokenizer,它过滤了所有的数字。
我应该如何解决这个问题?
你是对的,LowerCaseTokenizer它将删除所有非字母。查看您的模式将非常有用(就提供有意义的答案而言),因为我不相信仅使用小写过滤器工厂会生成Tokenizer任何类型的 a 。
不过,无论如何,标记器还有很多其他选择。两者Standard或Classic可能更适合您的需求。
类似的东西:
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
可能对你有好处。