Следует отметить, что вы можете экспортировать переменную, а затем изменить значение. Измененное значение переменной будет доступно для дочерних процессов. После того как экспорт был установлен для переменной, вы должны сделать export -n <var>
, чтобы удалить свойство.
$ K=1
$ export K
$ K=2
$ bash -c 'echo ${K-unset}'
2
$ export -n K
$ bash -c 'echo ${K-unset}'
unset
Проблема в том, что долгое время 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 отсюда.