Как создать sql-запрос для поиска частичных совпадений?

У меня есть набор элементов в базе данных. Каждый элемент имеет имя и описание . Мне нужно реализовать средство поиска , которое принимает ряд ключевых слов и возвращает отдельные элементы, по крайней мере одно из ключевых слов которых соответствует слову в имени или описании.

например У меня в базе данных три элемента

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

Поиск с использованием ключевого слова «торговый центр» должен возвращать второй элемент

Я пытался использовать LIKE ключевое слово и IN ключевое слово отдельно, .. Чтобы ключевое слово IN работало, запрос должен быть

SELECT DISTINCT FROM mytable WHERE name IN ('pall mall cigarettes')

, но

SELECT DISTINCT FROM mytable WHERE name IN ('mall')

вернет 0 строк

Я не мог понять, как сделать запрос, который вмещает столбцы с именем и описанием. и позволяет частичное совпадение слов ..

Может кто-нибудь помочь?

обновление:

Я создал таблицу через спящий режим, а для поля описания использовал аннотацию javax.persistence @Lob. Используя psql, когда я исследовал таблицу, Показано

...
 id           | bigint                      | not null
 description  | text                        |  
 name         | character varying(255)      | 
...

Одна из записей в таблице выглядит так:

id | description | name 
21 | 133414      | magic marker
8
задан Damon Julian 23 August 2011 в 23:22
поделиться