我有一个Lucene索引,目前区分大小写。我想添加选项将不区分大小写的搜索作为后备。这意味着与案例匹配的结果将获得更多权重并将首先出现。例如,如果结果数量限制为10,并且有10个匹配我的情况,这就足够了。如果我只找到7个结果,我可以从不区分大小写的搜索中添加3个结果。
我的情况实际上更复杂,因为我有不同重量的物品。理想情况下,匹配“错误”的情况会增加一些重量。不用说,我不想要重复的结果。
一种可能的方法是拥有2个索引。一个有一个案例,一个没有和搜索两个。当然,这里有一些冗余,因为我需要两次索引。
有更好的解决方案吗?想法?
答案 0 :(得分:6)
你有没有试过copyField?见http://wiki.apache.org/solr/SchemaXml#Copy_Fields
如果没有定义具有不同配置的新字段B,则通过copyField
将字段A复制到B中答案 1 :(得分:5)
Lucene搜索区分大小写, 只是所有输入都是通常的 在经过时低调 Queryparser,感觉就像是 不区分大小写。换一种说法, 不要小写你的输入 索引,不要小写你的 查询(即选择一个分析器) 不小写)关键字分析器 例如。
[setLowercaseExpandedTerms][1](boolean lowercaseExpandedTerms)
您可以使用区分大小写的分析器对术语编制索引,当您需要不区分大小写的查询时,使用不会将您的术语转换为小写的类
查看通配符,前缀和模糊查询