1
我有一個Postgres數據庫包含照片,我想讓人們通過顏色搜索它們。我已經爲每張照片定義了多種顏色(1-5),並且我使用的是LAB colours(感知色彩空間,定義爲三維:明度加兩個色彩維度)。用於LAB顏色的Postgres空間索引?
我的問題是:在Postgres中做這件事的最好方法是什麼?它基本上是一個三維搜索,所以我應該使用空間索引?
我的要求是:
- 運行通過顏色的邊框搜索(找到照片與Y色的距離X之內的顏色)。
- 按照距離顏色X的距離排列結果(返回顏色最接近Y的顏色的照片)
- r-tree-like表現。
我已經使用Python中的rtree索引構建了一個概念驗證,並且它工作得很好。我只是不確定如何使用Postgres表複製它。
...或者多維數組可能更合適? – Richard
你有沒有嘗試**使用PostgreSQL的rtree功能?但請注意,Postgres rtree確實是事務性的。內存中的只讀索引可能會更快,所以如果您不需要交易,您可能會爲不需要的東西付出高昂的代價。 –
直觀上你想要存儲和查詢3d點。但是內置的幾何類型是2d ......也就是說,考慮到Lab色彩空間中的色彩成分實際上是(a,b)部分 - 您可能能夠避開這個限制 - 一個2d點。 –