閱讀138 返回首頁    go 阿裏雲 go 技術社區[雲棲]


PostgreSQL 電商小需求 - 湊單商品的篩選

標簽

PostgreSQL , 電商 , 湊單 , 最佳湊單 , 任意字段組合


背景

電商的促銷活動非常多,規則可能比較複雜,要薅羊毛的話,數學可能要比較好才行。因此也出現了大量的導購網站,比如SMZDM。

但是實際上電商裏麵也有類似的應用,可以智能的分析買家的需求,根據買家的需求、已有的券、購物車,向用戶推薦湊單品。

湊單的需求,本質上是多個字段組合搜索的需求。

1、購物車總金額

2、用戶標簽

3、用戶優惠券

4、店鋪活動標簽

5、商品本身的多種標簽

等。

根據規則計算出一些條件,根據這些條件,到商品標簽表進行查詢,找到對應的商品。

例如用戶有一些滿減優惠券,那麼可以與購物車的總金額進行計算,得到還需要多少就能使用這個券。

同時,根據用戶最近關注的商品類別(體現在用戶標簽表),到商品標簽表,找到這類商品。根據多個條件,篩選出複合條件的商品。

PostgreSQL 有多個技術手段能夠解決高速任意字段檢索的需求。

1、布隆過濾,支持任意字段組合的等值查詢。

《PostgreSQL 9.6 黑科技 bloom 算法索引,一個索引支撐任意列組合查詢》

2、bitmap scan

gin複合索引,或者多個b-tree單列索引,都可以實現bitmap scan。多個條件過濾,收斂到更少的數據塊,順序掃描+FILTER。

《PostgreSQL bitmapAnd, bitmapOr, bitmap index scan, bitmap heap scan》

3、列存儲

4、bitmap標簽

《阿裏雲RDS for PostgreSQL varbitx插件與實時畫像應用場景介紹》

《基於 阿裏雲 RDS PostgreSQL 打造實時用戶畫像推薦係統(varbitx)》

5、數組標簽

《恭迎萬億級營銷(圈人)瀟灑的邁入毫秒時代 - 萬億user_tags級實時推薦係統數據庫設計》

DEMO

略,請參考以上文檔。

參考

《PostgreSQL 多字段任意組合搜索的性能》

《時間、空間、對象多維屬性 海量數據任意多維 高效檢索 - 阿裏雲RDS PostgreSQL最佳實踐》

《PostgreSQL 海量時序數據(任意滑動窗口實時統計分析) - 傳感器、人群、物體等對象跟蹤》

《多字段,任意組合條件查詢(無需建模) - 毫秒級實時圈人 最佳實踐》

《寶劍贈英雄 - 任意組合字段等效查詢, 探探PostgreSQL多列展開式B樹 (GIN)》

《PostgreSQL 如何高效解決 按任意字段分詞檢索的問題 - case 1》

《PostgreSQL 9.6 黑科技 bloom 算法索引,一個索引支撐任意列組合查詢》

最後更新:2017-11-12 02:06:23

  上一篇:go  PostgreSQL 數據庫NULL值的默認排序行為與查詢、索引定義規範 - nulls first\last, asc\desc
  下一篇:go  PostgreSQL Oracle 兼容性之 - rowid (CREATE TABLE WITH OIDS)