Я думаю, что встроенная функция принимает только текстовые или совместимые типы текстовых данных.
Я понимаю, что это намного больше работы, чем использование встроенной, но вы всегда можете написать свою собственную функцию триггера, так как она может получить доступ ко всей записи (как NEW
). Я делаю некоторые предположения относительно вашей таблицы.
create or replace function photos_insert_update_trigger()
returns trigger
language plpgsql as
$BODY$
BEGIN
NEW.tsv := to_tsvector ('english',
NEW.title || ' ' ||
NEW.description || ' ' ||
array_to_string (NEW.tags, ' '));
return NEW;
END;
$BODY$;
create trigger insert_update_photos_trigger
before insert or update on photos
for each row
execute procedure photos_insert_update_trigger();
insert into photos (title, description, tags)
values ('Spaceballs', 'Mel Brooks Star Wars', array['Dark Helmet', 'Yogurt']);
Я не слишком много работаю с цветообразователями, так что, возможно, моя интерпретация того, как текст превращается в цветектор, может быть немного неправильной, но Нижняя строка с вашей собственной триггерной функцией, вы будете иметь полную гибкость в том, как вы хотите справиться с этим.