2011-02-11 21 views
0

我在一个运行得很好的Django站点上有一个Sphinx搜索。它发现各种查询的优秀匹配。我希望能够提升排名以获得更新的结果。很多年以前的文章比新文章的排名高。较旧的文章更频繁地包含搜索词,因此具有更高的相关性,但新文章仍然非常相关,所以我希望它们首先出现。我如何在Sphinx搜索中为更新的文章赋予更多权重?

我试着阅读有关权重的Sphinx文档,但它令人难以置信的混淆,并充满了我不太了解的术语。我希望保持大致相同的搜索,我只是想稍微提高排名,以更新近pub_dates的结果。

回答

4

使用SPH_SORT_EXPR可以改变由算术表达式排序,如:

$ CL->个SetSortMode(SPH_SORT_EXPR, “@weight + IF(PUB_DATE>的strtotime('2011-01-01),50, 0));

在此表达,这是出版1 2011年1月起将获得+50的重量文章

+0

这不起作用,因为日期总是在变化。它不能是任意的截止日期。它需要一个通用的滑动尺度,一直回溯历史。 – Apreche 2012-02-14 13:29:11

0

$cl->SetSortMode (SPH_SORT_EXPR, "@id");这给你一个斜坡 - 越近,越重简单做@id * 2可以使效果增加一倍,或者使用/ 2来减少它。

1

$ cl-> SetSortMode(SPH_SORT_EXPR,“@id”);这给你一个斜坡 - 越近,越重。只需 做@id * 2使效果加倍或/ 2减弱效果。

这是行不通的,因为使用绝对值很难预测结果。例如两个ID分别为100和ID 99000的帖子,但ID 100的重量非常好,ID 99000的重量很差会ID 99000.

相关问题