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", которая не будет соответствовать сохраненной строке.

Другие вопросы по тегам