Правильный запрос для подсчета на php-библиотекиasticsearch

Я использую php библиотека для эластичного поиска И я пытаюсь получить счет из поиска, используя метод подсчета, чтобы избежать получения всех результатов. Но кажется, что я не использую правильный формат или что-то еще при запросе сервера Flexiblesearch.

Вот что я делаю

        $hosts = ['localhost:9200'];
$client = ClientBuilder::create()
->setHosts($hosts)
->build();$params = [
'index' => 'logstash-*',
'type'  => 'INFO',
'body'  => [
'query' => [
'bool' => [
"should" => [
["term" => ["tags" => "producer"]],
["term" => ["tags" => "statistics"]],
["term" => ["message" => "view"]],
["term" => ["context.id" => 1]]
]
]
]
]
];$response = $client->search($params); // was returning all the results too, I was wrong
$response = $client->count($params); // return a count of all my documents in elasticsearch instance, that's wrong

ИСПРАВЛЕНО спасибо @Val Я установил минимальное значение должно соответствовать 4, и это работает!

    array (size=4)
'took' => int 14
'timed_out' => boolean false
'_shards' =>
array (size=3)
'total' => int 10
'successful' => int 10
'failed' => int 0
'hits' =>
array (size=3)
'total' => int 11
'max_score' => float 7.852423
'hits' =>
array (size=10)
0 =>
array (size=5)
...
1 =>
array (size=5)
...
2 =>
array (size=5)
...
3 =>
array (size=5)
...
4 =>
array (size=5)
...
5 =>
array (size=5)
...
6 =>
array (size=5)
...
7 =>
array (size=5)
...
8 =>
array (size=5)
...
9 =>
array (size=5)
...
array (size=2)
'count' => int 11
'_shards' =>
array (size=3)
'total' => int 10
'successful' => int 10
'failed' => int 0

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

0

Решение

Я отредактировал вопрос с правильным ответом.
Последний запрос:

$params = [
'index' => 'logstash-*',
'type'  => 'INFO',
'body'  => [
'query' => [
'bool' => [
"should" => [
["term" => ["tags" => "producer"]],
["term" => ["tags" => "statistics"]],
["term" => ["message" => "view"]],
["term" => ["context.id" => 1]]
],
"minimum_should_match" => 4
]
]
]
];
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]