2014-09-01 1 views
1

Я хочу выполнить поиск LIKE (например, все слова, содержащие «abc» i.e.% abc%), но используя Hibernate Search API.Как я могу выполнить поиск по сайту LIKE с помощью поиска в спящем режиме?

Есть ли способ сделать это, используя существующие анализаторы?

Если да, то какой из них лучше с точки зрения производительности; SQL или Hibernate Поиск для этого случая?

ответ

0

Правильный, спящий поиск для этого гораздо эффективнее, чем использование критериев SQL LIKE.

StandardAnalyzer (org.apache.lucene.analysis.standard.StandardAnalyzer) подходит, другие анализаторы сделают более расширенное разделение текста.

+0

стандартная ана zer будет искать только полные термины. Я хочу разделить отдельные слова. что-то вроде EdgeNGram, но «N» является динамическим. –

0

Может быть, посмотрите на это:

http://lucene.apache.org/core/4_10_2/core/org/apache/lucene/search/RegexpQuery.html?is-external=true

Но заметьте:

«Обратите внимание, этот запрос может быть медленным, так как он должен перебрать много терминов Для предотвращения чрезвычайно. медленные RegexpQueries, термин Regexp не должны начинаться с выражением. *»

Это должно быть включено в спящем-Search

Смежные вопросы