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

时间:2010-03-21 16:10:42

标签: java lucene

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

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

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

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

2 个答案:

答案 0 :(得分:6)

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

如果没有定义具有不同配置的新字段B,则通过copyField

将字段A复制到B中

答案 1 :(得分:5)

  

Lucene搜索区分大小写,   只是所有输入都是通常的   在经过时低调   Queryparser,感觉就像是   不区分大小写。换一种说法,   不要小写你的输入   索引,不要小写你的   查询(即选择一个分析器)   不小写)关键字分析器   例如。

[setLowercaseExpandedTerms][1](boolean lowercaseExpandedTerms)

您可以使用区分大小写的分析器对术语编制索引,当您需要不区分大小写的查询时,使用不会将您的术语转换为小写的类

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