Lucene:我想对使用Lucene构建的索引进行搜索,但在搜索时我想忽略搜索条件的情况,我该怎么做? 例如,我在我的索引(lucene)中有http或HTTP,因此当我使用http i进行搜索时,应该得到两个结果。
答案 0 :(得分:4)
这取决于一些事情。首先,如果您用于索引的分析器尚未将文本标记为小写,那么您将发现执行此操作非常困难。
我认为,KeywordAnalyzer
可以保留案例。因此,单词“Hello”将在索引中保留为“Hello”作为术语,这意味着您可以找到该单词的唯一方法是使用完全相同的情况。
但是,StandardAnalyzer
会将所有字词转换为小写字母。因此,“Hello”在术语列表中将是“hello”,但是如果您也存储文本,而不仅仅是分析它,如果您要从索引中检索它,它将保留字符串的大小写。但是,搜索“HEllo”,“heLLO”,“HeLlO”都将与“hello”相同,因为它会将所有这些转换为小写。
您也不会遇到这些分析仪,您可以随时创建自己的分析仪。
最后,高度建议您在搜索时使用与创建索引相同的分析器。
答案 1 :(得分:1)
应将LowerCaseFilter添加到分析过滤器链中
使用Lucene的LowerCaseFilter,在索引和搜索以使搜索不区分大小写之前,令牌可以是小写的。
建议在索引和搜索期间完成。