Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何计算斯芬克斯中的结果?_Php_Mysql_Count_Sphinx - Fatal编程技术网

Php 如何计算斯芬克斯中的结果?

Php 如何计算斯芬克斯中的结果?,php,mysql,count,sphinx,Php,Mysql,Count,Sphinx,我必须处理有很多结果的查询,但我只以20-30行的集合显示它们 然后我使用php API中的SetLimits()方法 但是我需要知道结果的总数,来计算页面(或结果集)的数量 我现在唯一能做的就是通过将限制设置为10000000来提取所有结果,并查看sphinx返回的数组的“total”键中有什么,但这并不好,因为我只需要count()数字,我不希望sphinx创建一个包含所有id的巨大数组 在mysql中执行select..count()查询将不起作用,因为sphinx中的索引数据总是不同的

我必须处理有很多结果的查询,但我只以20-30行的集合显示它们

然后我使用php API中的SetLimits()方法

但是我需要知道结果的总数,来计算页面(或结果集)的数量

我现在唯一能做的就是通过将限制设置为10000000来提取所有结果,并查看sphinx返回的数组的“total”键中有什么,但这并不好,因为我只需要count()数字,我不希望sphinx创建一个包含所有id的巨大数组

在mysql中执行select..count()查询将不起作用,因为sphinx中的索引数据总是不同的

有什么想法吗?

根据手册:

这应该能奏效

  $cl->SetLimits(0,0);
我不是Sphinx的开发者,所以这只是一个瞎猜。。。它应该避免记忆 溢出大量结果

让我知道它是否工作,这样我就可以删除答案,如果这是不正确的

我还发现
SELECT..COUNT()
在Sphinx查询中不起作用,所以你说得对

此外,根据Sphinx文档,您可以使用ShowMeta查询检索结果的数量

显示元 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)
参考文献:

根据手册:

这应该能奏效

  $cl->SetLimits(0,0);
我不是Sphinx的开发者,所以这只是一个瞎猜。。。它应该避免记忆 溢出大量结果

让我知道它是否工作,这样我就可以删除答案,如果这是不正确的

我还发现
SELECT..COUNT()
在Sphinx查询中不起作用,所以你说得对

此外,根据Sphinx文档,您可以使用ShowMeta查询检索结果的数量

显示元 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)
参考文献:

没有返回与您的请求匹配的记录数的数据吗

“total”是此请求返回的条目数(受SetLimit影响),total_found是我理解的与查询匹配的结果总数(不受SetLimit影响)。

是否返回与您的请求匹配的记录数

SELECT VARIABLE_NAME, VARIABLE_VALUE
FROM information_schema.GLOBAL_STATUS WHERE
VARIABLE_NAME LIKE 'SPHINX_TOTAL_FOUND';
“total”是此请求返回的条目数(受SetLimit影响),total_found是我理解的匹配查询的结果总数(不受SetLimit影响)

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_%';
更多信息

SELECT VARIABLE_NAME, VARIABLE_VALUE
FROM information_schema.GLOBAL_STATUS WHERE
VARIABLE_NAME LIKE 'SPHINX_%';

显示状态,如“斯芬克斯发现”;显示状态,如“斯芬克斯发现”;