If you use shpinxQL, you can add "max_matches" option to your query:
<?php
SELECT ... LIMIT 1000, 10 OPTION max_matches = 1000
?>
And to "searchd" section in sphinx.conf:
<?php
searchd {
...
max_matches = 10000
....
}
?>
(PECL sphinx >= 0.1.0)
SphinxClient::setLimits — Set offset and limit of the result set
$offset
, int $limit
[, int $max_matches
= 0
[, int $cutoff
= 0
]] )
Sets offset
into server-side result set and amount
of matches to return to client starting from that offset
(limit
). Can additionally control maximum
server-side result set size for current query
(max_matches
) and the threshold amount of matches
to stop searching at (cutoff
).
offset
Result set offset.
limit
Amount of matches to return.
max_matches
Controls how much matches searchd will keep in RAM while searching.
cutoff
Used for advanced performance control. It tells searchd to forcibly
stop search query once cutoff
matches have been
found and processed.
Returns TRUE
on success or FALSE
on failure.
If you use shpinxQL, you can add "max_matches" option to your query:
<?php
SELECT ... LIMIT 1000, 10 OPTION max_matches = 1000
?>
And to "searchd" section in sphinx.conf:
<?php
searchd {
...
max_matches = 10000
....
}
?>
the max_matches / cutoff parameters are priceless.
if you ever have a situation where you need a 'count' of the number of matches, but only need to display lets say the 'top 10', these 2 parameters are very handy.
we used to get the occasional 'unable to connect' error with sphinx, after implementing these 2 parameters where applicable, these issues disappeared, load dropped, and the servers were much happier.
I almost pulled out all my hair trying to figure this one out. After applying limits using
$s->setLimit(10,10);
the search kept returning only false. getLastError() and getLastWarning() contained empty strings.
The solution, like Nayana stated, is to add a positive non-zero integer $max to setLimit.
If you get an error
per-query max_matches=0 out of bounds (per-server max_matches=1000).
make sure that you also set the $max to a value other than the default 0,
there is an issue published with a patch if you feel like wanting to patch,
the first option works well as a workaround.
http://sphinxsearch.com/bugs/view.php?id=208