场景:数据库中有一个字段是数组,要计算数组的相似度。

建表语句如下:

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数据库数组相似度计算相关推荐

  1. PostgreSQL数据库统计信息——compute_scalar_stats计算统计数据

    如果列类型指定的是std_typanalyze函数决定compute_stats的取值: 如果列数据类型支持默认的等于(eqopr equals operator)和小于(ltopr less tha ...

  2. Serverless 解惑——函数计算如何访问 PostgreSQL 数据库

    函数计算(Function Compute):函数计算 是事件驱动的全托管计算服务.使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码.函数计算为您准备好计算资源,弹性地可靠地运行任务 ...

  3. 函数计算如何访问 PostgreSQL 数据库

    函数计算(Function Compute):函数计算 是事件驱动的全托管计算服务.使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码.函数计算为您准备好计算资源,弹性地可靠地运行任务 ...

  4. php数据库根据相似度排序,php数组字段相似度排序

    摘要:今天有一个客户有这么一个需求,要求对某篇文章的相关内容的列表,在跟文章标题进行相似度排序,于是想了又想,写了一个小算法,可以根据关键字相似度对数组某个字段进行排序... 今天有一个客户有这么一个 ...

  5. Debezium系列之:使用Debezium接入PostgreSQL数据库数据到Kafka集群的详细技术文档

    Debezium系列之:使用Debezium接入PostgreSQL数据库数据到Kafka集群的详细技术文档 一.概述 二.连接器的工作原理 1.安全 2.快照 3.Ad hoc snapshots ...

  6. Debezium系列之:Debezium2.X之PostgreSQL数据库的Debezium连接器

    Debezium系列之:Debezium2.X之PostgreSQL数据库的Debezium连接器 一.概述 二.连接器的工作原理 1.安全 2.快照 3.临时快照 4.触发临时快照 5.增量快照 6 ...

  7. .net访问PostgreSQL数据库发生“找不到函数名”的问题追踪

    PostgreSQL是一个使用广泛的免费开源的数据库,与MySQL比较,它更适合复杂的企业计算任务,而MySQL在互联网领域应用更为广泛,究其原因,可能是PostgreSQL拥有支持最多的数据类型,甚 ...

  8. 使用PostgREST的RestAPI操作PostgreSQL数据库教程

    使用PostgREST的RestAPI操作PostgreSQL数据库教程 表和视图 公开的架构中的所有视图和表均可被查询的活动数据库角色访问,并且可供活动数据库角色访问.它们暴露在一级深度路线中.例如 ...

  9. 12306的西天取经路 - 春节抢票与PostgreSQL数据库设计思考

    标签 PostgreSQL , 12306 , 春节 , 一票难求 , 门禁广告 , 数组 , 范围类型 , 抢购 , 排他约束 , 大盘分析 , 广告查询 , 火车票 背景 马上春节了,又到了火车票 ...

最新文章

  1. 03 Cisco IOS设备
  2. 美国邮政署将展开测试自驾卡车运输服务
  3. GLUT及其函数的用法整理
  4. 时间序列:等分布序列(Equidistributed sequence)
  5. [Debugging]分析博客园提交评论的校验规则
  6. EasyUI,二级页面内容的操作
  7. java实现短信上行源码_Java 发送短信验证码 示例源码
  8. 基于Session的认证方式_实现会话功能_Spring Security OAuth2.0认证授权---springcloud工作笔记117
  9. 减少 JavaScript 代码量的原生技术
  10. C# 获取UTC 转换时间戳为C#时间
  11. Oracle 19c 安装步骤
  12. 中国移动计算机二面笔试题,中国移动笔试面试经验
  13. 2021年全球电力线通信(PLC)系统收入大约7385.8百万美元,预计2028年达到14530百万美元,2022至2028期间,年复合增长率CAGR为11.0%
  14. 交叉熵以及相对熵的理解
  15. MongoDB下载安装踩坑实录
  16. Linux系统入门学习
  17. 小白入门之HTML--第五章 块状元素,行内元素,盒子模型
  18. mysql在手游中的作用_数据库虚拟化技术_手游业务MySQL数据库虚拟化漫谈 | By 肖力-云栖社区...
  19. 2021中青杯B题港珠澳大桥桥梁设计与安全策略思路代码
  20. 从西工大图书馆校外下载论文方法

热门文章

  1. centos7镜像加速_使用阿里云容器镜像服务托管私有Docker镜像
  2. java 方法 参数 引用_Java 基础
  3. 怎么样拒绝服务器重新启动?
  4. git常用命令之stash
  5. Wisdom RESTClient支持自动化测试并可以生成API文档
  6. Nginx +uwsgi+django配置
  7. poj1182(加权值的并查集)
  8. 解决Ubuntu Adobe Reader 菜单栏空白
  9. 《那些年啊,那些事——一个程序员的奋斗史》——38
  10. 2008-07-29