PostgreSQL数据库数组相似度计算
场景:数据库中有一个字段是数组,要计算数组的相似度。
建表语句如下:
create table cataract_wt (name text NOT NULL, content float8[] NOT NULL, label float NOT NULL);
其中字段content 就是一个float类型的数组,可以赋予一维或二维。
1.Cube组件
参考:https://zejn.net/b/2016/06/10/postgresql-tutorial-color-similarity-search/
cube是内带,直接启用。
CREATE EXTENSION cube;
使用cube计算相似度如下:
SELECT name, smlr FROM ( SELECT name, cube_distance(cube(content),cube((SELECT content FROM cataract_wt WHERE name = 'C020_20180514_100234_R_CASIA2_LGC_002.jpg'))) AS smlr FROM cataract_wt WHERE name <> 'C020_20180514_100234_R_CASIA2_LGC_002.jpg') x ORDER BY x.smlr ASC LIMIT 10;
但cube元素过多不能计算,会提示:A cube cannot have more than 100 dimensions.
2.smlar组件
参考:https://github.com/jirutka/smlar
部署过程:
1.git clone git://sigaev.ru/smlar
2.make USE_PGXS=1
3.make USE_PGXS=1 install
4.CREATE EXTENSION smlar;
使用:
SELECT name, smlr FROM ( SELECT name, smlar(content,(SELECT content FROM cataract_wt WHERE name = 'c0100_20181102_111708_R_CASIA2_LGC_002.jpg')) AS smlr FROM cataract_wt WHERE name <> 'c0100_20181102_111708_R_CASIA2_LGC_002.jpg') x ORDER BY x.smlr ASC LIMIT 10;
切记:赋予一维,二维的不行。可将多维通过numpy压到一维。
PostgreSQL数据库数组相似度计算相关推荐
- PostgreSQL数据库统计信息——compute_scalar_stats计算统计数据
如果列类型指定的是std_typanalyze函数决定compute_stats的取值: 如果列数据类型支持默认的等于(eqopr equals operator)和小于(ltopr less tha ...
- Serverless 解惑——函数计算如何访问 PostgreSQL 数据库
函数计算(Function Compute):函数计算 是事件驱动的全托管计算服务.使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码.函数计算为您准备好计算资源,弹性地可靠地运行任务 ...
- 函数计算如何访问 PostgreSQL 数据库
函数计算(Function Compute):函数计算 是事件驱动的全托管计算服务.使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码.函数计算为您准备好计算资源,弹性地可靠地运行任务 ...
- php数据库根据相似度排序,php数组字段相似度排序
摘要:今天有一个客户有这么一个需求,要求对某篇文章的相关内容的列表,在跟文章标题进行相似度排序,于是想了又想,写了一个小算法,可以根据关键字相似度对数组某个字段进行排序... 今天有一个客户有这么一个 ...
- Debezium系列之:使用Debezium接入PostgreSQL数据库数据到Kafka集群的详细技术文档
Debezium系列之:使用Debezium接入PostgreSQL数据库数据到Kafka集群的详细技术文档 一.概述 二.连接器的工作原理 1.安全 2.快照 3.Ad hoc snapshots ...
- Debezium系列之:Debezium2.X之PostgreSQL数据库的Debezium连接器
Debezium系列之:Debezium2.X之PostgreSQL数据库的Debezium连接器 一.概述 二.连接器的工作原理 1.安全 2.快照 3.临时快照 4.触发临时快照 5.增量快照 6 ...
- .net访问PostgreSQL数据库发生“找不到函数名”的问题追踪
PostgreSQL是一个使用广泛的免费开源的数据库,与MySQL比较,它更适合复杂的企业计算任务,而MySQL在互联网领域应用更为广泛,究其原因,可能是PostgreSQL拥有支持最多的数据类型,甚 ...
- 使用PostgREST的RestAPI操作PostgreSQL数据库教程
使用PostgREST的RestAPI操作PostgreSQL数据库教程 表和视图 公开的架构中的所有视图和表均可被查询的活动数据库角色访问,并且可供活动数据库角色访问.它们暴露在一级深度路线中.例如 ...
- 12306的西天取经路 - 春节抢票与PostgreSQL数据库设计思考
标签 PostgreSQL , 12306 , 春节 , 一票难求 , 门禁广告 , 数组 , 范围类型 , 抢购 , 排他约束 , 大盘分析 , 广告查询 , 火车票 背景 马上春节了,又到了火车票 ...
最新文章
- 03 Cisco IOS设备
- 美国邮政署将展开测试自驾卡车运输服务
- GLUT及其函数的用法整理
- 时间序列:等分布序列(Equidistributed sequence)
- [Debugging]分析博客园提交评论的校验规则
- EasyUI,二级页面内容的操作
- java实现短信上行源码_Java 发送短信验证码 示例源码
- 基于Session的认证方式_实现会话功能_Spring Security OAuth2.0认证授权---springcloud工作笔记117
- 减少 JavaScript 代码量的原生技术
- C# 获取UTC 转换时间戳为C#时间
- Oracle 19c 安装步骤
- 中国移动计算机二面笔试题,中国移动笔试面试经验
- 2021年全球电力线通信(PLC)系统收入大约7385.8百万美元,预计2028年达到14530百万美元,2022至2028期间,年复合增长率CAGR为11.0%
- 交叉熵以及相对熵的理解
- MongoDB下载安装踩坑实录
- Linux系统入门学习
- 小白入门之HTML--第五章 块状元素,行内元素,盒子模型
- mysql在手游中的作用_数据库虚拟化技术_手游业务MySQL数据库虚拟化漫谈 | By 肖力-云栖社区...
- 2021中青杯B题港珠澳大桥桥梁设计与安全策略思路代码
- 从西工大图书馆校外下载论文方法