Lucene:我想对使用Lucene构建的索引进行搜索,但在搜索时我想忽略大小写

时间:2011-10-12 05:06:53

标签: lucene

Lucene:我想对使用Lucene构建的索引进行搜索,但在搜索时我想忽略搜索条件的情况,我该怎么做? 例如,我在我的索引(lucene)中有http或HTTP,因此当我使用http i进行搜索时,应该得到两个结果。

2 个答案:

答案 0 :(得分:4)

这取决于一些事情。首先,如果您用于索引的分析器尚未将文本标记为小写,那么您将发现执行此操作非常困难。

我认为,KeywordAnalyzer可以保留案例。因此,单词“Hello”将在索引中保留为“Hello”作为术语,这意味着您可以找到该单词的唯一方法是使用完全相同的情况。

但是,StandardAnalyzer会将所有字词转换为小写字母。因此,“Hello”在术语列表中将是“hello”,但是如果您也存储文本,而不仅仅是分析它,如果您要从索引中检索它,它将保留字符串的大小写。但是,搜索“HEllo”,“heLLO”,“HeLlO”都将与“hello”相同,因为它会将所有这些转换为小写。

您也不会遇到这些分析仪,您可以随时创建自己的分析仪。

最后,高度建议您在搜索时使用与创建索引相同的分析器。

答案 1 :(得分:1)

应将LowerCaseFilter添加到分析过滤器链中 使用Lucene的LowerCaseFilter,在索引和搜索以使搜索不区分大小写之前,令牌可以是小写的。
建议在索引和搜索期间完成。