Lucene区分大小写且不敏感的搜索

我有一个Lucene索引,目前区分大小写。 我想添加一个不区分大小写的搜索选项作为后备。 这意味着与案例匹配的结果将获得更多权重并将首先出现。 例如,如果结果数量限制为10,并且有10个匹配我的情况,这就足够了。 如果我只找到7个结果,我可以从不区分大小写的搜索中再添加3个结果。

我的情况实际上更复杂,因为我有不同重量的物品。 理想情况下,匹配“错误”的情况会增加一些重量。 不用说,我不想要重复的结果。

一种可能的方法是有2个索引。 一个有案例,一个没有和搜索两者。 当然,这里有一些冗余,因为我需要两次索引。

有更好的解决方案吗? 想法?

你有没有试过copyField? 请参阅http://wiki.apache.org/solr/SchemaXml#Copy_Fields

如果没有定义具有不同配置的新字段B,则通过copyField将字​​段A复制到B中

Lucene搜索区分大小写,只是通过Queryparser时所有输入通常都是低位的,因此感觉它不区分大小写。 换句话说,在索引之前不要小写你的输入,并且不要小写你的查询(例如选择一个不小写的分析器)关键字分析器。

[setLowercaseExpandedTerms][1](boolean lowercaseExpandedTerms) 

你可以使用区分大小写的分析器索引术语,当你想要不区分大小写的查询时,使用一个不会将你的术语转换为小写的类

查看通配符,前缀和模糊查询