2013-04-27 71 views
1

我使用的查询模式需要让abc匹配Abc400匹配400(用户名匹配)。solr LowerCaseFilterFactory不应该过滤编号

但我在使用LowerCaseFilterFactory时发现,当查询400时,不会返回任何结果。 我挖掘到源代码中,发现LowerCaseTokenizerFactory使用LowerCaseTokenizer,它扩展了LetterTokenizer,并且它过滤了所有的数字。

我该如何解决这个问题?

回答

2

你是对的LowerCaseTokenizer将删除所有非字母。它将非常有用(就提供有意义的答案)来查看您的模式,因为我不相信只使用小写过滤器工厂应该生成任何种类的Tokenizer

尽管如此,还有很多其他选项用于标记器。 StandardClassic都可能更适合您的需求。沿着线

东西:

<analyzer> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
    <filter class="solr.LowerCaseFilterFactory"/> 
</analyzer> 

可能会为你做的很好。

+0

谢谢!有用! – linjunhalida 2013-04-27 06:32:29