如何计算狮身人面像的结果?

| 我必须处理具有很多结果的查询,但是我只以20-30行为一组显示它们。 然后,我使用php API中的SetLimits()方法。 但是我需要知道结果的总数,以计算页面数(或结果集) 我现在能做的唯一方法是通过将限制设置为10000000来获取所有结果,并查看sphinx返回的数组的'total \'键中的内容,但这不好,因为我只需要count()数字,我不希望使用狮身人面像来创建包含所有id的巨大数组。 在mysql中执行select..count()查询将不起作用,因为sphinx中的索引数据始终是不同的。 有任何想法吗?
已邀请:
SphinxClient:query是否返回与您的请求相匹配的记录数的数据? \“ total \”是此请求返回的条目数(受SetLimit影响),total_found是与查询匹配的结果总数(不受SetLimit影响)。
根据手册:SphinxClient :: setLimits, 这应该可以解决问题
  $cl->SetLimits(0,0);
我不是Sphinx开发人员,所以这只是一个盲目的猜测...应该避免内存 大量结果溢出。 让我知道它是否有效,所以如果这不正确,我可以删除答案。 我还发现ѭ1在Sphinx查询中不起作用,因此您是正确的。 同样,根据Sphinx文档,您可以使用SHOW META查询来检索结果数量。 显示元 SHOW META显示有关最新查询的其他元信息,例如查询时间和关键字统计信息:
mysql> SELECT * FROM test1 WHERE MATCH(\'test|one|two\');
+------+--------+----------+------------+
| id   | weight | group_id | date_added |
+------+--------+----------+------------+
|    1 |   3563 |      456 | 1231721236 |
|    2 |   2563 |      123 | 1231721236 |
|    4 |   1480 |        2 | 1231721236 |
+------+--------+----------+------------+
3 rows in set (0.01 sec)

mysql> SHOW META;
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| total         | 3     |
| total_found   | 3     |
| time          | 0.005 |
| keyword[0]    | test  |
| docs[0]       | 3     |
| hits[0]       | 5     |
| keyword[1]    | one   |
| docs[1]       | 1     |
| hits[1]       | 2     |
| keyword[2]    | two   |
| docs[2]       | 1     |
| hits[2]       | 2     |
+---------------+-------+
12 rows in set (0.00 sec)
参考文献: Sphinx:SHOW META语法 SphinxClient :: setLimits
SELECT VARIABLE_NAME, VARIABLE_VALUE
FROM information_schema.GLOBAL_STATUS WHERE
VARIABLE_NAME LIKE \'SPHINX_TOTAL_FOUND\';
了解更多信息
SELECT VARIABLE_NAME, VARIABLE_VALUE
FROM information_schema.GLOBAL_STATUS WHERE
VARIABLE_NAME LIKE \'SPHINX_%\';

要回复问题请先登录注册