elasticsearch получает общее количество документов в индексе с помощью php API

#php #elasticsearch

#php #elasticsearch

Вопрос:

Я создал индекс elasticsearch:

 $es = ElasticsearchClientBuilder::create()->build();

$params = [
    'index'=>'articles',
    'type'  => 'article'
];

for ($i=0; $i<30; $i  ) {
    $params['body'] = [ 'title'=>'title '.$i, 'body'=>'text '.$i ];
    $response = $es->index($params);
}
  

Итак, добавлено 30 документов, теперь мне нужно получить общее количество записей. Это работает

 $search_params= [
    'index'=>'articles',
    'type'  => 'article',
];

$query = $es->search($search_params);

echo $query['hith']['total'];
  

Но, как я читал, более эффективным является использование _count метода прямого подсчета.

Моя проблема в том, что я не понял, как реализовать _count в php API?

пробовал:

 $search_params= [
    'index'=>'articles',
    'type'  => 'article',
    'body' => [ 
        'query'  => ['_count'=>[] ] 
    ]
];

$query = $es->search($search_params);
  

и несколько других вариантов, но не подходит один синтаксис.

Помогите?

Ответ №1: