在SphinxSearch中,如何按多个因素排序(某些因素与搜索无关)?

时间:2018-07-01 03:00:51

标签: php search full-text-search sphinx

除权重外,我们还希望将某些元素纳入搜索结果的排名(num_views,价格等)。

$results = $sphinx->search($query, 'products') ->setMatchMode(\Sphinx\SphinxClient::SPH_MATCH_EXTENDED2)->query();

如何将weight与其他因素(例如num_view)结合起来? (请注意,我不想按两个字段分别排序,我希望能够将两个字段合并为一个分数。

谢谢!

1 个答案:

答案 0 :(得分:0)

在SphinxQL中,您可以使用以下代码:

SELECT id, weight() + num_view AS my_weight FROM products 
    WHERE match('some query') ORDER BY my_weight DESC

weight() + num_view是将两个因素组合为一个权重值的简单示例。

我想在Sphinx PHP API中,您可以使用SetSelectSetSortMode函数来做同样的事情。