Lucene не соответствует строкам, имеющим верхние символы
Я использую Lucene Search Engine (v36) с анализатором StandardAnalyzer. Я использую MultiFieldQueryParser.
Одно из моих полей установлено как NOT_ANALYZED, потому что это имя версии, содержащее буквенно-цифровые символы и точки. Когда это поле содержит верхний символ, поиск не приводит к результатам. Любая идея?
Подробности:
Поле содержит значения, такие как:
- version1.26.12.test.a
- version1.26.12.test.b
- v1.2
- version1.Dummy
Мой поиск возвращает результаты для трех первых примеров выше, но не для последнего.
Я вообще не настраивал Lucene, за исключением того, что я обошел стандартные стоп-слова с Collections.emptySet().
Большое спасибо. Dimitri
1 ответ
Я считаю, что если вы пометите поле как NOT_ANALYZED, оно будет сохранено как есть, однако StandardAnalyzer использует LowerCaseFilter (и другие см. Ссылку). Поэтому, если вы ищете "version1.Dummy", вашей строкой запроса, вероятно, будет "version1.dummy", которая не будет соответствовать сохраненной строке.