PostgreSQL , 多重函数数组 , UDF索引 , 过滤 , 文本处理
PG的数组类型,被广泛应用于 画像系统 , 标签系统。
在一些业务重建中,对数组内容的定义往往包含了多重含义,例如即包含了标签本身,又包含了标签的属性(例如 标签值:权值,时间 等)。
那么如何能高效的进行标签的检索,同时又过滤出符合标签加权值的记录呢?
1、建表
2、写入测试数据
3、创建UDF1,提取出要查询的标签值(用到了正则匹配)
4、创建UDF1索引
5、创建UDF2,提取指定标签的加权值(用到了正则匹配,数组下标计算,数组按位置取元素等操作)
6、查询SQL如下
查询包含标签a,同时权值大于20的记录。
UDF功能是不是很赞呢?
<a href="https://www.postgresql.org/docs/10/static/functions-array.html">https://www.postgresql.org/docs/10/static/functions-array.html</a>
1、追加元素
2、修改元素
3、删除元素
用法举例