1、用于自动更新的触发器
当用一个单独的列存储tsvector类型时,需要创建一个触发器在该列内容变更时更新tsvector列。GBase 8c提供两个内建的触发器函数用于更新,同时也支持自定义触发器函数。
tsvector_update_trigger(tsvector_column_name, config_name, text_column_name [, ... ])
tsvector_update_trigger_column(tsvector_column_name, config_column_name, text_column_name [, ... ])
上述触发器函数在CREATE TRIGGER命令参数的控制下,自动从一个或多个文本列计算出一个tsvector列。例如:
gbase=# CREATE TABLE messages (
title text,
body text,
tsv tsvector
);
2、收集文档统计数据
函数ts_stat可用于检查配置和查找候选停用词。
ts_stat(sqlquery text, [ weights text, ]
OUT word text, OUT ndoc integer,
OUT nentry integer) returns setof record
sqlquery是一个包含SQL查询语句的文本,该SQL查询将返回一个tsvector。ts_stat执行SQL查询语句并返回一个包含tsvector中每一个不同的语素(词)的统计信息。返回信息包括:
- word text:词位的值;
- ndoc integer:词出现过的文档(tsvector)的编号;
- nentry integer:词出现的总次数;
如果设置了权重条件,只有标记了对应权重的词素才会统计频率。