Это может также сработать.
я есть набор предметов в БД. Каждыйitem
имеетname and a description
. Мне нужно реализоватьsearch
средство, которое принимает ряд ключевых слов и возвращает отдельные элементы, в которых по крайней мере одно из ключевых слов соответствует слову в названииor
описание.
например у меня в БД три предмета
1.item1 :
name : magic marker
description: a writing device which makes erasable marks on whiteboard
2.item2:
name: pall mall cigarettes
description: cigarette named after a street in london
3.item3:
name: XPigment Liner
description: for writing and drawing
Поиск по ключевому слову «запись» должен возвращать магический маркер и XPigment Liner
Поиск по ключевому слову mall должен вернуть второй элемент
Я пытался использоватьLIKE
ключевое слово иIN
Ключевое слово отдельно, .. ДляIN
ключевое слово для работы, запрос должен быть
SELECT DISTINCT FROM mytable WHERE name IN ('pall mall cigarettes')
но
SELECT DISTINCT FROM mytable WHERE name IN ('mall')
вернет 0 строк
Я не мог понять, как сделать запрос, который включает в себя как столбцы имени и описания, так и частичное совпадение слов.
Может кто-нибудь помочь?
Обновить:
Я создал таблицу через hibernate и для поля описания использовал javax.persistence @Lob annotation.Using psql, когда я исследовал таблицу, она показана
...
id | bigint | not null
description | text |
name | character varying(255) |
...
Одна из записей в таблице, как,
id | description | name
21 | 133414 | magic marker