Solr - 基于范围+范围之外的相关性

时间:2012-02-27 21:52:07

标签: solr

在我的查询中,我想根据一系列值(例如$ 500 - $ 1000)搜索价格并返回模糊结果集。

我可以通过降价来增加这些价值:[500到1000] ^ 10,但它不会得到499美元,而不是200美元。

我可以创建一个类似的增强函数:recip(abs(sub(price,750)),1,1000,1000)^ 10,但这得分501比500更相关。

有没有办法让$ 500到$ 1000有一个提升功能,而另一个提升功能用于超出该范围的值?

谢谢, 德鲁

编辑功能中的拼写错误

1 个答案:

答案 0 :(得分:2)

recip(abs(sub(price,750)),1,1000,1000)^10

使用范围的中点而不是下限。


修改:要回答更新的问题:

在这里查看map功能 - 您可以将500到1000之间的所有价格映射到750,然后将其用于提升。就像是: recip(abs(sub(map(price,500,1000,750),750)),1,1000,1000)^10

这应该得分600和700相同,但它会比400得分高400.