Я использую Hibernate Search, чтобы найти людей в моей базе данных.
Они проиндексировали поля firstName и lastName.
Я хочу, чтобы результаты выглядели примерно так:
Поиск: "Robe Pau"
Match:
- Роберт Полсен
- Пол Робертсон
Не должно совпадать:
- Роберт Робертсон
- Роберт Хендрикс
- Анна Полсен
Пока ищет как "Роб"
должно соответствовать:
- Роберт Полсен
- Пол Робертс
- Роб Робертс
Мой код выглядит так:
FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(entityManager);
Query query = fullTextEntityManager
.getSearchFactory()
.buildQueryBuilder()
.forEntity(Customer.class)
.overridesForField("firstName", "edgeNGram_query")
.overridesForField("lastName","edgeNGram_query")
.get()
.simpleQueryString()
.onFields("firstName","lastName")
.matching(text)
.createQuery();
Я надеюсь, что кто-то сможет просветить меня.