logs=# \dS log__20180101 Таблица "public.log__20180101" Столбец | Тип | Модификаторы —--------+--------------------------+------------— snd_date | timestamp with time zone | rcv_date | timestamp with time zone | host | text | facility | text | level | text | program | text | source | text | pid | text | message | text | tsv | tsvector | Индексы: "log__20180101_host_idx" btree (host) "log__20180101_level_idx" btree (level) "log__20180101_rcv_date_idx" btree (rcv_date) "log__20180101_snd_date_idx" btree (snd_date) "log__20180101_tsv_idx" gin (tsv) Ограничения-проверки: "partition_check" CHECK (rcv_date >= '2018-01-01 00:00:00+09'::timestamp with time zone AND rcv_date < '2018-01-02 00:00:00+09'::timestamp with time zone) Триггеры: tsvectorupdate BEFORE INSERT OR UPDATE ON log__20180101 FOR EACH ROW EXECUTE PROCEDURE tsvector_update_trigger('tsv', 'pg_catalog.english', 'message') Наследует: all_events
Если вкратце - то при вставке записи отрабатывает триггер, который в столбцец tsv складывает вектор сформированный из message. На столбце построен Gin индекс, по которму и идёт поиск.
Обсуждают сегодня