Проблема в том, что долгое время QueryParser не обрабатывал запросы должным образом (не применял анализаторы), если они были FuzzyQuery , WildcardQuery, PrefixQuery , RegexpQuery
Для решения этой проблемы у Lucene был класс AnalyzingQueryParser , который переопределяет QueryParser по умолчанию Lucene, так что Fuzzy-, Prefix-, Range- и WildcardQuerys также проходят через данный анализатор, но с подстановочными символами * и ? не удаляться из условий поиска.
Однако, начиная с Lucene 7.4, эта функциональность была объединена в QueryParserBase , которые теперь имеют соответствующие методы для обработки этих запросов, например:
protected Query getFuzzyQuery(String field,
String termStr,
float minSimilarity)
Таким образом, вместо создания класса QueryParser
, вы должны создать ComplexPhraseQueryParser
, который переопределяет этот метод, и вызывать parse отсюда.