Использование массивов VARCHAR в TSV - PullRequest
0 голосов
/ 28 августа 2018

У меня есть столбец тегов, называемый тегами, который является типом массива varchars. Как я могу изменить этот триггер, чтобы включить эти слова?

create
    trigger tsvectorupdate before insert
        or update
            on
            public.records for each row execute procedure tsvector_update_trigger( 'tsv',
            'pg_catalog.english',
            'title',
            'text',
            'caption',
            'location_name')

1 Ответ

0 голосов
/ 28 августа 2018

ОК - в руководстве есть ответ

CREATE function update_tsv() RETURNS trigger AS $$
begin
  new.tsv :=
     setweight(to_tsvector('pg_catalog.english', coalesce(new.title,'')), 'A') ||
     setweight(to_tsvector('pg_catalog.english', coalesce(new.caption,'')), 'A') ||
     setweight(to_tsvector('pg_catalog.english', coalesce(new.text,'')), 'A') ||
     setweight(to_tsvector('pg_catalog.english', coalesce(new.location_name,'')), 'A') ||
     setweight(to_tsvector('pg_catalog.english', 
coalesce(array_to_string(new.tags,','),'')), 'A');
  return new;
end
$$ LANGUAGE plpgsql;

CREATE TRIGGER tsvectorupdate BEFORE INSERT OR UPDATE
ON records FOR EACH ROW EXECUTE PROCEDURE update_tsv();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...