При разбиении поискового запроса по пробелам так, чтобы при поиске имени, например, термин «Джон Доу» соответствовал результатам «Джон», «Доу» или «Джон Доу», а не только весь запрос в егоцельность.Вот как я это делаю сейчас:
BooleanQuery booleanQuery = new BooleanQuery();
String[] terms = queryString.split(" ");
for(String term : terms) {
booleanQuery.add(new FuzzyQuery(new Term("firstName", term)), BooleanClause.Occur.SHOULD);
booleanQuery.add(new FuzzyQuery(new Term("lastName", term)), BooleanClause.Occur.SHOULD);
}
Для меня такой подход выглядит немного грязно.Есть ли лучший способ?