Есть готовый индекс эластика использующийся для автодополнений. Разообрался как сделать фильтрацию по одному слову состоящему из букв, но не могу понять как сделать поиск так что бы можно было сделать поиск слов с пробелами. Например могу в поле names найти по запросу "Иванов" запись вида "Иванов Иван Иванович", но если я задам в поиск "Иванов Иван" то ничего не вернётся. Кусок кода:
SearchSourceBuilder search = SearchSourceBuilder.searchSource();
BoolQueryBuilder query = new BoolQueryBuilder();
String value = "Иванов Иван"; //строка которая ищется в индексе
query.must(QueryBuilders.regexpQuery("names",".*" + value.replaceAll("([+\\-!\\(\\){}\\[\\]^\"~*?:\\\\]|[&\\|]{2})", "\\\\$1") + ".*"));
search.query(query);
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости