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

Java Lucene区分大小写&;不敏感搜索,java,lucene,Java,Lucene,我有一个Lucene索引,它目前区分大小写。我想添加选项,将不区分大小写的搜索作为一种退路。这意味着与案例匹配的结果将获得更大的权重,并将首先出现。例如,如果结果的数量限制为10,并且有10个匹配匹配我的案例,这就足够了。如果我只找到7个结果,我可以从不区分大小写的搜索中再添加3个结果 我的情况实际上更复杂,因为我有不同权重的项目。理想情况下,匹配“错误”案例会增加一些分量。不用说,我不想要重复的结果 一种可能的方法是使用2个索引。一个带案例,一个不带案例,两个都搜索。当然,这里有一些冗余,因为

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

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

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


有更好的解决办法吗?想法?

您是否已经尝试过copyField?看

如果没有,请使用不同的配置定义新字段B,并通过copyField将字段a复制到B中

Lucene搜索区分大小写, 只是所有的输入通常都是 穿过时,应将外壳降低 Queryparser,所以感觉像是 不区分大小写。换句话说,, 在输入之前不要降低大小写 索引,不要降低大小写 查询(即,选择一个 不使用小写)关键字分析器 比如说

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


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

是否尝试了copyField?好吧,copyField是一个Solr特性,我使用的是裸骨Lucene。然而,我可以添加一个具有相同索引文本(小写)的额外字段。这比创建一个完全独立的索引要好得多,所以+1.ups,好的。我也有同样的问题,但我和索尔一起工作。但是我添加这个答案有点太快了。我已经开始运行额外的字段,所以你的答案给了我一个正确的方向。这就是我所需要的。再次感谢。我会保持开放,看看我是否能得到更有效的解决方案。将标记为正确答案。同样,不是完全的解决方案,而是朝着正确的方向前进。当然,使用区分大小写的分析器和较低的查询将不会产生正确的结果。你能对sqlite或mysql做同样的事情吗?@Naveen:sqlite和mysql都有完善的数据库引擎,你的问题是什么?
[setLowercaseExpandedTerms][1](boolean lowercaseExpandedTerms)