PostgreSQL数据库数组相似度计算
生活随笔
收集整理的這篇文章主要介紹了
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数据库图像搜索插件i
- 下一篇: 图像语义分割模型DeepLab训练Cit