我正在處理房地產應用程序。房屋將具有典型的屬性,如價格,牀房,浴室,SqFt,地塊面積等。用戶將搜索房屋,這樣的查詢將需要多個不平等過濾器,如:x和y之間的價格,大於z的房間,浴室更多比p ...等谷歌數據存儲 - 搜索優化技術
我知道多個不等式過濾器是不允許的。我也不想在我的代碼中執行任何過濾,因爲我希望能夠使用遊標。
所以我想出了兩個解決方案。我不確定這些是否正確 - 所以不知道大師是否可以解決一些問題
解決方案1:我將離散每個屬性的值並將它們保存在列表字段中,然後使用IN。例如:如果有3個臥室,而不是儲存牀= 3,我會儲存牀= [1,2,3]。現在,如果用戶搜索至少有兩間臥室的房屋,那麼我不會將過濾器寫成牀> 2,而是將過濾器寫成「牀在[2]」 - 而我的家在[1,2,3]將符合條件 - 任何有兩張牀[1,2]或四張牀[1,2,3,4]的住宅等等
解決方案2:它與第一個類似,但不是創建列表屬性,我實際上將歸因(列)添加到家中。因此,有3間臥室的房屋將具有以下屬性/柱/屬性:col-bed-1:true,col-bed-2:true,col-bed-3:true。現在,如果用戶搜索至少有兩間臥室的房屋,那麼不要將過濾器寫成牀> 2,我會將過濾器寫爲「col-bed-2 = true」 - 我的家將符合條件 - 任何家裏有兩張牀,3張病牀,4牀等
我知道這兩種解決方案將工作,但我想知道: 1.哪一個是好無論從性能和谷歌定價的角度 2.是否有更好的解決方案來做到這一點?
除非您限制精度(比如說每隔50美元離散),否則這將不適用於價格 –