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