介绍
RUM
扩展安装
第一步,从GitHub拉取代码
|
|
第二步,进入目录并make
|
|
可能遇到的问题:
Makefile:40: /usr/lib/postgresql/*/pgxs.mk: No such file or directory
解决方式:添加pgsql
的bin
到PATH
export 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 - postgres
psql 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
非官方内置扩展,并且会产生较大的日志、数据文件,占用更多的存储空间。