Я не верю, что Lucene поддерживает что-то подобное, и при этом я не верю, что у него есть тривиальное решение.
«Нечеткие» поиски не работают с фиксированным количеством символов. bla~
может, например, соответствовать blah
и поэтому должно учитывать весь термин.
Что вы могли бы сделать, это реализовать алгоритм расширения запроса, который взял запрос bla~*
и преобразовал его в серию запросов ИЛИ
bla* OR blb* OR blc OR .... etc.
Но это действительно только жизнеспособно, если строка очень короткая или если вы можете сузить расширение на основе некоторых правил.
В качестве альтернативы, если длина префикса фиксирована, вы можете добавить поле с подстроками и выполнить нечеткий поиск по нему. Это даст вам то, что вы хотите, но сработает, только если ваш вариант использования достаточно узок.
Вы точно не указываете, зачем вам это нужно, возможно, это вызовет другие решения.
Один сценарий, который я могу придумать, касается другой формы слов. Например. Нахождение car
и cars
.
Это легко на английском языке, так как есть доступные слова слова. На других языках может быть довольно сложно реализовать словосочетания, если не невозможно.
Однако в этом сценарии вы можете (при условии, что у вас есть доступ к хорошему словарю) найти искомое условие и расширить поиск программным путем для поиска всех форм слова.
например. поиск cars
переводится в car OR cars
. Это было успешно применено для моего языка по крайней мере в одной поисковой системе, но, очевидно, нетривиально для реализации.