我正在尝试构建产品的过滤系统。产品有许多属性,包括价格,尺寸(厘米)和(#)的侧面。我想构建一个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