0
votes

I am using the SphinxClient() object in php (using sphinx api for php)

this is my code:

$cl = new SphinxClient();
$cl->SetServer( "localhost", 3312 );
$cl->SetMatchMode   ( SPH_MATCH_ALL );
$cl->SetSortMode    ( SPH_SORT_RELEVANCE );

$cl->SetArrayResult( true );

$cl->AddQuery( $sphinxQuery, $sphinxIndex, 'Search' );

$cl->SetLimits      ( 0, 1000, 1000 );

$result = $cl->RunQueries();

but the result I get contains only 50 matches, although it does show that total is more

Array
(
    ...
    [matches] => Array
    (
        [0] => Array
        (
            [id] => 91855
            ...
        )

        [1] => Array
        (
            ...
        )

        ...

        [49] => Array
        (
            ...
        )

    )

    [total] => 1000
    [total_found] => 1920
    [time] => 0.000
    [words] => Array
    (
        [584] => Array
        (
            [docs] => 2067
            [hits] => 2067
        )

    )

)

As you can see that it shows 0 to 49 matches (i.e. 50 matches) while the limit is 1000

And also you can see that the total is 1000 and total_found is 1920, which means there are more results than just 50 but it is not just returning them

Is there some other setting in sphinx that reduces the number of matches output

May be there is some setting introduced in some version of sphinx and it has a default value of 50...?

Any help will be appreciate..!

1
Does the [49] result look ok? Does it have all its attributes? Just wondering if some decoding issue, and it just happens to 'die' decoding that result. Does different queries work, or give different results, or always exactly 50 items in array?barryhunter

1 Answers

1
votes

maybe you should change the SetLimits to more than 1000