2012-01-29 5 views
0

Привет, я разрабатываю свое первое приложение grails теперь, когда хочу поместить метод поиска в мое приложение. Возможно ли совпадение с одним введенным ключевым словом со всеми полями поля table.Like, когда я использую findById, он будет искать только по id, или если я использую findByName, он будет искать только по имени или findByDescription найти только по описанию. Можно ли использовать findall или findBy * для соответствия всем полям, таким как id , название, описание ..Как искать ключевое слово ввода со всеми полями таблицы

+0

Проверьте доступный плагин, это намного лучший/быстрый способ поиска по нескольким полям класса домена –

ответ

0

Если вы используете СУБД, вы можете оформить запрос по следующим направлениям:

SELECT .... FROM .... WHERE name like '%value%' OR description like '%value%' OR id like '%value%' 

Но это будет очень неэффективно. Вместо этого вы можете использовать полнотекстовый API поиска lucene/solr и проиндексировать весь контент как часть одного поля и вызывать запросы на него.

+0

с использованием встроенной базы данных grails HSQLDB .. как использовать запрос в этом ... – Shagul

+0

И как i хочу сделать результат в форме XML (так как это приложение RESTful) idont думаю, что я могу использовать API поиска ... возможно ли сделать то же самое любым другим способом ...? – Shagul

+0

рендеринг результатов не зависит от поиска. Конечно, вы можете хранить все поля, которые хотите отобразить пользователю, как часть индекса lucene, а не снова ударять базу данных после поиска. – naresh

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