比方說,我有特性的一組對象:多參數匹配+加權隨機挑中的Redis
Object Quantity Color Shape Kind ---------------------------------------- APPLE 12 RED ROUND FRUIT APPLE 3 GREEN ROUND FRUIT ORANGE 6 ORANGE ROUND FRUIT CARROT 0 RED CONICAL VEGETABLE RADISH 24 RED ROUND VEGETABLE
對象和數量以外的所有屬性都表示爲字符串。數量是一個數字。
我必須根據用戶的查詢編寫一個隨機的對象列表。
查詢包含所有字符串屬性(即除數量外的所有屬性)的值。
查詢中的值可能是精確的屬性值或通配符(意思是「任何值將對此屬性執行操作」)或否定 - 「不是此確切屬性值」。
查詢結果是一個對象,由具有匹配屬性的所有對象加權隨機選取。隨機選擇的權重是數量。
例如:
Query -> Probabilities -> Example random result ----------------------------------------------------------------------------- * ROUND FRUIT -> APPLE 12/APPLE 3 = APPLE 15 -> APPLE !GREEN ROUND FRUIT -> APPLE 12/ORANGE 6 -> ORANGE RED * * -> CARROT 0/APPLE 12/RADISH 24 = APPLE 12/RADISH 24 -> RADISH RED CONICAL VEGETABLE -> CARROT 0 = (none) -> (none)
對於自我教育的目的,我想建立使用Redis的用於數據存儲的這個系統。
問題是 - 如何優雅地使用最少量的應用程序邏輯(而不是in-Redis操作)?權重和否定類破壞圖像。否則它會是nicely doable with sets。
歡迎任何提示。