高速全文检索(rum) 本小节主要介绍RDSPostgreSQL的rum插件使用方法。 操作场景 RDSPostgreSQL支持 rum插件,RUM索引作为一个全文索引类型,是GIN全文索引的扩展。与内建的GIN和GiST全文索引的区别是它是以插件包的形式存在。 前提条件 请确保您的实例内核大版本满足,本插件所支持的内核版本,请参考支持的版本插件列表。 注意事项 由于与 smlar 插件存在相同运维符号 % ,因此无法与其共同创建并使用。 插件使用 安装插件 sql CREATE EXTENSION IF NOT EXISTS rum; 卸载插件 sql DROP EXTENSION IF EXISTS rum; 使用示例 RUM模块提供以下操作符。 操作符 返回值数据类型 描述 tsvector tsquery float4 返回tsvector与tsquery之间的距离。 timestamp timestamp float8 返回两个时间戳之间的距离。 timestamp timestamp float8 示例 sql 1.创建表。 CREATE TABLE testrum(t text, a tsvector); CREATE TRIGGER tsvectorupdate BEFORE UPDATE OR INSERT ON testrum FOR EACH ROW EXECUTE PROCEDURE tsvectorupdatetrigger('a', 'pgcatalog.english', 't'); INSERT INTO testrum(t) VALUES ('The situation is most beautiful'); INSERT INTO testrum(t) VALUES ('It is a beautiful'); INSERT INTO testrum(t) VALUES ('It looks like a beautiful place'); 2.创建rum索引。 CREATE INDEX rumidx ON testrum USING rum (a rumtsvectorops); 3.执行run查询。 SELECT t, a totsquery('english', 'beautiful place') AS rank FROM testrum WHERE a @@ totsquery('english', 'beautiful place') ORDER BY a totsquery('english', 'beautiful place'); SELECT t, a totsquery('english', 'place situation') AS rank FROM testrum WHERE a @@ totsquery('english', 'place situation') ORDER BY a totsquery('english', 'place situation');