标签: java solr
我使用的查询架构需要abc匹配Abc和400匹配400(用户名匹配)。
abc
Abc
400
但是当我使用LowerCaseFilterFactory时,我发现,当我查询400时,它不会返回任何结果。 我深入研究了源代码,发现LowerCaseTokenizerFactory使用LowerCaseTokenizer扩展了LetterTokenizer,并过滤了所有数字。
LowerCaseFilterFactory
LowerCaseTokenizerFactory
LowerCaseTokenizer
LetterTokenizer
我该如何解决这个问题?
答案 0 :(得分:2)
你是对的,LowerCaseTokenizer将删除所有非字母。它是非常有用的(只要提供有意义的答案)来查看你的模式,因为我不相信只使用小写过滤器工厂应生成任何类型的Tokenizer。
Tokenizer
但无论如何,令牌器还有很多其他选择。 Standard或Classic都可能更适合您的需求。
Standard
Classic
以下内容:
<analyzer> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer>
可能会为你做好。