由于我正在转向 sphinx 搜索引擎以提高我的网站性能,我正在尝试将旧的 mysql 查询翻译成新的 sphinx 语言。
关键是根据对我的帖子的投票和每次投票的分数(从 1 到 5)之间的数学运算对结果进行排序。
因此,例如,如果我对某个帖子投了 3 票,我得到了 1=5 点投票 2=3 点和 3 点=2 点投票,我的表将包含一个名为 votes 的字段,其整数 = 3 (votes=3) 和一个字段整数为 5+3+2(点数=10)。
因此,此类帖子的最终评分将是积分/投票,在此示例中为 10/3=3,333...
假设我正在使用 sphinx api 按降序获取评分最高的帖子列表,这是我在 php 脚本中使用的旧 mysql 查询:
mysql_query("SELECT * FROM table ORDER BY points/votes DESC LIMIT $start,$stop");
我试图建立一个狮身人面像查询,但它不工作并且总是给出 0 个结果。请阅读描述我所做的所有尝试的//注释行。
require("sphinxapi.php");
$cl = new SphinxClient;
$index = index;
$cl->setServer("localhost", 9312);
$cl->SetMatchMode(SPH_MATCH_FULLSCAN);
//$cl->SetSortMode(SPH_SORT_EXTENDED, 'IDIV(points,votes) DESC'); //not working
//$cl->SetSortMode(SPH_SORT_EXTENDED, '(points DIV votes) DESC'); //not working
//$cl->SetSortMode(SPH_SORT_EXTENDED, 'points/votes DESC'); //not working
//$cl->SetSortMode(SPH_SORT_EXTENDED, '(points/votes) DESC'); //not working
$cl->setLimits($start,$stop,$max_matches=1000);
$query = "";
请您帮我找出问题所在...谢谢。