2016-05-12 5 views
0

Я использую объект SphinxClient() в PHP (с использованием сфинкса апи для PHP)сфинкс не возвращает все результаты

это мой код:

$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(); 

но результат я получаю содержит только 50 матчей , хотя оно показывает, что общий объем более

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 
     ) 

    ) 

) 

Как вы можете видеть, что он показывает 0 до 49 матчей (то есть 50 матчей), а предел составляет 1000

А также вы можете увидеть, что общая сумма составляет 1000 и total_found 1920, что означает, что больше результатов, чем просто 50, но это не только возвращение им

Есть некоторые другие настройки в сфинкса, что уменьшает количество матчей output

Может быть, есть некоторая настройка, введенная в некоторой версии sphinx, и она имеет значение по умолчанию 50 ...?

Любая помощь будет оценена ..!

+0

Результат [49] выглядит нормально? Имеет ли он все свои атрибуты? Просто интересно, есть ли какая-то проблема с декодированием, и просто получается «умирать» от декодирования. Работают ли разные запросы или дают разные результаты или всегда точно 50 элементов в массиве? – barryhunter

ответ

1

Возможно, вам следует изменить SetLimits на более чем 1000

+0

не работает ... :( –

+0

затем проверьте файл php.ini на наличие ограничений – makoulis

+0

Мне нужно будет связаться с поддержкой сервера для этого ... попробует это –