1

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

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

细节:

该字段包含以下值:

  • 版本1.26.12.test.a
  • 版本1.26.12.test.b
  • v1.2
  • version1.Dummy

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

除了使用 Collections.emptySet() 绕过标准停用词外,我根本没有自定义 Lucene。

非常感谢。迪米特里

4

1 回答 1

3

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

于 2012-09-10T17:46:13.067 回答