Lucene不匹配具有较高字符的字符串
问题描述:
我正在使用Lucene搜索引擎(v36)和StandardAnalyzer。我使用MultiFieldQueryParser。Lucene不匹配具有较高字符的字符串
我的一个字段被设置为NOT_ANALYZED,因为它是包含字母数字字符和点的版本名称。当此字段包含上部字符时,搜索找不到结果。任何想法 ?
详情:
该字段包含类似的值:
- version1.26.12.test.a
- version1.26.12.test.b
- V1.2
- VERSION1。虚拟
我的搜索正在返回上面三个第一个例子,但不是最后一个例子。
除了我用Collections.emptySet()绕过标准停用词外,我还没有自定义Lucene。
非常感谢。 Dimitri
答
我相信如果您将某个字段标记为NOT_ANALYZED,则将其保存为原样,但StandardAnalyzer使用LowerCaseFilter(和其他请参阅链接)。因此,如果您搜索“version1.Dummy”,那么您的查询字符串可能是“version1.dummy”,它不会与存储的字符串匹配。
嗨,谢谢你的回答。这是有道理的,但不幸的是它并没有解决问题。搜索version1.dummy不会检索任何数据,但version1.?ummy会。我该怎么办 ? – daiquiri33
你应该确保你的查询字符串不会抛出任何'QueryAnalyzer',如果该字段是NOT_ANALYZED。 – dolbi