Hibernate Search 3.3- Игнорировать пробелы в пределах Windows - PullRequest
1 голос
/ 05 мая 2011

Я использую поиск Hibernate 3.3 в моем приложении.

Моя форма поиска содержит текстовые поля, раскрывающийся список, список и т. Д. Я должен выполнить поиск по словам, числам и датам. В основном многопрофильный поиск.

Моя проблема в том, что я не могу выполнить поиск по словам с пробелами внутри слова.

Например: список содержит набор имен сотрудников, который позволяет выбрать несколько. Так что в моем Java-слое я буду получать значения в массиве, например - [Анкита Мурти, Ахана Гупта, Арчита Патель]
Теперь я должен разделить эти имена через запятую и сопоставить эти имена со столбцом employee_name в базе данных и получить результаты. Из-за пробелов внутри слова совпадение не выполняется.

Я провел небольшое исследование и обнаружил, что мы можем изменить Анализаторы для достижения этой цели, но я не могу этого понять.

Также помогите мне изменить анализаторы, чтобы они игнорировали верхний / нижний регистр

1 Ответ

0 голосов
/ 09 июля 2014

Лучше всего использовать дизъюнкцию, чтобы сделать ИЛИ, или, чтобы избежать чувствительности, и MatchMode.ANYWHERE, чтобы найти значение в любом месте значений БД.

Вы можете попробовать использовать MatchMode или без него, однако у него есть и другие типы, которые начинаются, заканчиваются и точны.

Disjunction dis = Restrictions.disjunction();

dis.add(Restrictions.ilike("employee.name",value1,MatchMode.ANYWHERE);
....
criteria.add(dis);

Проверьте это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...