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
略,請參考以上文檔。
參考
《時間、空間、對象多維屬性 海量數據任意多維 高效檢索 - 阿裏雲RDS PostgreSQL最佳實踐》
《PostgreSQL 海量時序數據(任意滑動窗口實時統計分析) - 傳感器、人群、物體等對象跟蹤》
《多字段,任意組合條件查詢(無需建模) - 毫秒級實時圈人 最佳實踐》
《寶劍贈英雄 - 任意組合字段等效查詢, 探探PostgreSQL多列展開式B樹 (GIN)》
《PostgreSQL 如何高效解決 按任意字段分詞檢索的問題 - case 1》
《PostgreSQL 9.6 黑科技 bloom 算法索引,一個索引支撐任意列組合查詢》
最後更新:2017-11-12 02:06:23
上一篇:
PostgreSQL 數據庫NULL值的默認排序行為與查詢、索引定義規範 - nulls first\last, asc\desc
下一篇:
PostgreSQL Oracle 兼容性之 - rowid (CREATE TABLE WITH OIDS)
NAT網絡環境下,部分客戶端無法連接Server的解決方法
Java常用類庫--StringBuffer:append、insert、reverse、replace、subString、delete、indexOf
使用程序創建Android桌麵快捷方式
阿裏雲ECS發送郵件出現異常問題
阿裏通信基礎技術框架介紹
J2EE部署項目至Tomcat報錯:Unable to read TLD "META-INF/c.tld"
8個Python編程語言的變種
修改 rhel6 時區
PostgreSQL 10.0 preview 功能增強 - 自由定義統計信息維度
vue.js 列表渲染