我正在嘗試構建產品的過濾系統。產品有許多屬性,包括價格,尺寸(釐米)和(#)的側面。我想構建一個SQL查詢,它總是返回ALL這些產品,但是會根據它們符合搜索條件的順序對它們進行排序。SQL查找近似匹配
例如可以說我有以下產品:
產品A 價格:250 尺寸:50個 面:4
產品B 價格:300 尺寸:60 面積:3
產品C 價格:200 尺寸:60個 側面:5
而且具有的搜索條件:
價格:$器210 - $ 260
我想它返回: 商品A,商品C,產品B
A首先是因爲它符合所有搜索條件。 C領先於B,因爲200美元最接近210美元-260美元範圍,而不是300美元。
這是一個相當簡單的情況,但搜索可能涉及任何屬性。
我腦海中的算法是對每個屬性做一些標準偏差計算,它會給你一個關於該屬性滿足搜索標準的密度的「分數」,這些分數可以被歸結爲一個產品給出產品的相關性總分。那是沿着正確的軌道嗎?
我意識到這是一個相當複雜的問題,我真的只是尋找一些指導而已。
我認爲你有你的A,B和C混合起來。 B應該首先歸還,因爲它在價格範圍內。 C應該返回第二個(10美元以外),然後A(40美元以外)。 – 2011-05-31 05:09:54
哎呀......你說得對。我將進行編輯。 – Mike 2011-05-31 21:16:04