SphinxClient::setLimits

(PECL sphinx >= 0.1.0)

SphinxClient::setLimitsConfigure l'offset et la limite du résultat

Description

public SphinxClient::setLimits ( int $offset , int $limit [, int $max_matches = 0 [, int $cutoff = 0 ]] ) : bool

Configure l'offset du résultat et la quantité de résultats à retourner au client à partir de cette position (avec l'argument limit). Peut aussi controler la taille maximale du jeu de résultats de la requête avec le paramètre max_matches, et le seuil minimum de résultats avec cutoff.

Liste de paramètres

offset

L'offset dans le résultat.

limit

Le nombre de résultats à retenir.

max_matches

Contrôle le nombre de résultats que searchd va conserver en RAM durant la recherche.

cutoff

Utilisé pour des contrôles avancés de performances. Il indique à searchd d'arrêter sa recherche lorsque cutoff ont été trouvés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

add a note add a note

User Contributed Notes 4 notes

up
1
xxxbunker dot com
14 years ago
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.
up
0
vlk dot abakan at gmail dot com
8 years ago
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
   
....
}

?>
up
0
shoanm at users dot sourceforge dot net
15 years ago
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.
up
0
Nayana Hettiarachch nayana at corp-gems dot com
15 years ago
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
To Top