Lucene不匹配具有大写字符的字符串

时间:2012-09-10 16:06:03

标签: lucene character standardanalyzer

我正在使用Lucene搜索引擎(v36)和StandardAnalyzer。我使用MultiFieldQueryParser。

我的一个字段设置为NOT_ANALYZED,因为它是包含字母数字字符和点的版本名称。当此字段包含上部字符时,搜索不会找到任何结果。有什么想法吗?

详细说明:

该字段包含以下值:

  • version1.26.12.test.a
  • version1.26.12.test.b
  • 1.2
  • version1.Dummy

我的搜索返回上面第三个例子的结果,但不是最后一个例子。

我没有自定义Lucene,只是我用Collections.emptySet()绕过了标准的停用词。

非常感谢。 迪米特里

1 个答案:

答案 0 :(得分:3)

我相信如果你将一个字段标记为NOT_ANALYZED它按原样存储,但是StandardAnalyzer使用LowerCaseFilter(和其他参见链接)。因此,如果您搜索" version1.Dummy",您的查询字符串可能是" version1.dummy"它不会与存储的字符串匹配。