【发布时间】:2012-02-23 18:49:08
【问题描述】:
在我的数据中,我有两个字段,类别和价格。我希望能够查询一个范围,价格:[500 TO 1000] 和类别:电子,但仍然返回低于 500 和超过 1000 的结果,只是根据与范围的差异,它们的相关性得分较低。
即我想展示:
产品1 $500
产品2 $550
产品3 $650
产品4 $900
产品5 $450
产品6 $475
产品7 $1200
有人可以解释一下这是如何实现的吗?
谢谢, 画了
【问题讨论】:
-
您能否在架构中添加错误结果和价格字段定义的示例?
-
这里是价格字段:
现在我可以查询我的确切结果想要,但我不确定如何查询模糊结果并根据相关性对它们进行评分。例如,我可以拉回 500-1000 的结果,但我也想要超出该范围的值,只是相关性较低。 -
您应该尝试将范围值提高得更高,以便它们出现在其他范围值之前。
-
我认为我需要的是一个函数,可以对超出该范围的结果产生负面影响。例如,500 到 1000 的范围的中值为 750。因此,值 450 是距中值 300 的净距离,而 1100 是距中值 350 的净距离。我只是不确定如何将其应用于查询。
-
这是我最终用来计算的公式:recip(abs(sub(map(price,500,1000,750),750)),1,1000,1000)