Skip to content

Latest commit

 

History

History
21 lines (17 loc) · 1.92 KB

usage-meta.md

File metadata and controls

21 lines (17 loc) · 1.92 KB

Извлечение META информации

Sphinx позволяет получать статистическую информацию о последнем выполненном запросе с помощью инструкции SHOW META SphinxQL. Эта информация обычно используется для получения общего количества строк в индексе без дополнительного запроса SELECT COUNT (*) .... Хотя вы всегда можете запустить такой запрос вручную, yii\sphinx\Query позволяет вам делать это автоматически без дополнительных усилий. Все, что вам нужно сделать, это включить yii\sphinx\Query::showMeta и использовать yii\sphinx\Query::search() для извлечения всех строк и метаинформации:

$query = new Query();
$results = $query->from('idx_item')
    ->match('foo')
    ->showMeta(true) // включить автоматический запрос 'SHOW META'
    ->search(); // извлечь все строки и META информацию

$items = $results['hits'];
$meta = $results['meta'];
$totalItemCount = $results['meta']['total'];

Note: Общее количество элементов, которое может быть извлечено из 'meta', ограничено опцией sphinx max_matches. Если ваш индекс содержит больше записей, чем значение max_matches (обычно - 1000), вы должны либо поднять max_matches через [[Query::options]], либо использовать [[Query::count()]], чтобы получить количество записей.