Выполнение запросов для нескольких поисковых фраз в psql

#sql #postgresql #vector

#sql #postgresql #вектор

Вопрос:

Я хочу выполнить запрос, но ищу более одного ключевого слова, например

 Select "Accession_Number" from Works where to_tsvector("Description") @@ to_tsquery('music') OR @@ to_tsquery('chair') OR to_tsquery('garb');
  

Каков наилучший способ сделать это?

Ответ №1:

Я предполагаю, что ваш DDL выглядит примерно так:

 create table Works
(   
    "Accession_Number" serial,
    "Description" text,

    primary key ("Accession_Number")
);

insert into Works 
  ("Description") 
values 
  ('lorem ipsum dolor garb sit'),
  ('brown fox chases music'),
  ('hello do you remember me chair'),
  ('what is this Description');
  

Для поиска по нескольким столбцам определенного ключевого слова у вас есть несколько вариантов.

Следующий запрос показывает использование регулярных выражений POSIX

 select "Accession_Number", 
       "Description"
from Works
where "Description" ~ '(music|chair|garb)';
  

Вы также можете использовать LIKE или ПОХОЖИЕ НА.