介绍
RUM扩展安装
第一步,从GitHub拉取代码
|
|
第二步,进入目录并make
|
|
可能遇到的问题:
Makefile:40: /usr/lib/postgresql/*/pgxs.mk: No such file or directory解决方式:添加pgsql的bin到PATHexport PATH="/usr/local/pgsql/bin/:$PATH"- 修改了
pgsql的默认端口,会在installcheck这一步出现以下错误:psql: error: connection to server on socket处理方式:make USE_PGXS=1 installcheck=>make USE_PGXS=1 installcheck -p XXXX psql DB -c "CREATE EXTENSION rum;"这一步,需要提前su - postgrespsql DB -c "CREATE EXTENSION rum;"中DB请替换成你的实际数据库名称psql DB -c "CREATE EXTENSION rum;"如果修改了端口,需要改成psql DB -c "CREATE EXTENSION rum;" -p xxxx
返回CREATE EXTENSION则扩展安装成功
RUM索引的创建和使用
索引创建两种方式:
- 创建一个
tsvector类型的字段,通过zhparser分词插件和TRIGGER,将需要全文索引的内容进行处理后存储到该字段。 这个方法无法使用一些RUM的其他特性,不推荐 - 创建索引的时候,使用
to_tsvector来创建指定列的索 字段类型选择:tsvector
使用步骤
第一步
创建tsvector 类型的字段,这边字段名创建的为:idx
第二步
|
|
使用上述SQL创建一个Trigger,用于自动生成idx列内容。
第三步
给idx创建RUM索引
|
|
其他的索引用法,可以使用RUM的一些特性,创建多字段合并索引
比如:rum_tsvector_addon_ops,该操作符用于tsvector类型的字段。
|
|
上述SQL的作用是创建一个名为tsts_idx的索引名称给tsts表,并且追加published_time到idx,形成一个多字段的索引。该特性优越于GIN的索引,能够有效解决全文索引+其他字段排序导致的查询慢的问题。
另外,还可以执行以下查询:
|
|
上述方式,可以查询特定时间相近的数据。
备注
另外还有一些RUM的其他特性,可以参考官网:https://github.com/postgrespro/rum
缺陷
RUM非官方内置扩展,并且会产生较大的日志、数据文件,占用更多的存储空间。