Как получить из сфинкса уникальные свойства товаров и количество товаров с этими свойствами?

Добрый день!
Есть задача "получить из Сфинкса уникальные свойства товаров и количество товаров с этими свойствами".
Другими словами получить из Сфинкса выдачу аналогичную SQL запросу:
SELECT i.prop, count(i.prop) FROM table_items i GROUP BY i.prop

Работа со сфинксом у нас в проекте организована через sphinx client.
Пробовал это организовать, через setgroupby, но получается странный результат когда свойство "sql_attr_multi".
На пример, свойство tags, код:
$cl->setGroupBy('tags', 4, '@groupby asc');
$result = $cl->query($query, $index);
foreach ($result['matches'] as $match)
{
   var_dump($match['attrs']['@groupby'], $match['attrs']['tags']);
}


выдает следующий результат:
int 24
array (size=2)
  0 => int 24
  1 => int 273
int 58
array (size=2)
  0 => int 58
  1 => int 273
int 273
array (size=2)
  0 => int 234
  1 => int 273

Т.е. он выдает 24, 58, 273. Почему свойство 234 теряется? Причем если изменить порядок сортировки, то теряться будет свойство 273.
Подскажите, что я делаю не так.
  • Вопрос задан
  • 259 просмотров
Пригласить эксперта
Ответы на вопрос 1
@klirichek
max_matches законфигурирован какой?

(см. в доке: WARNING: grouping is done in fixed memory and thus its results are only approximate; so there might be more groups reported in total_found than actually present. @count might also be underestimated. To reduce inaccuracy, one should raise max_matches. If max_matches allows to store all found groups, results will be 100% correct. )
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы