Я использую объект 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 ...?
Любая помощь будет оценена ..!
Результат [49] выглядит нормально? Имеет ли он все свои атрибуты? Просто интересно, есть ли какая-то проблема с декодированием, и просто получается «умирать» от декодирования. Работают ли разные запросы или дают разные результаты или всегда точно 50 элементов в массиве? – barryhunter