Как Multy получить образец Elasticsearch php?

Используйте клиента Elasticsearch в php.
Как я могу найти много документов в ES, для идентификатора, равного «WHERE id IN (1,2,3,4,9)» в SQL?
Для моно получить я делаю так

$ params = [
'index' => 'my_index',
'type' => 'my_type',
'id' => 'my_id'
];

$ response = $ client-> get ($ params);

как получить некоторые записи?
Я пытался так, но это не работает

$ params = [[
'index' => 'my_index',
'type' => 'my_type',
'id' => 'my_id'
]
[
'index' => 'my_index',
'type' => 'my_type',
'id' => 'my_id2'
]];

$ response = $ client-> mget ($ params);

так что

$ params = [
'index' => 'my_index',
'type' => 'my_type',
'id' => array ('my_id', 'my_id2')
];

$ response = $ client-> mget ($ params);

API-интерфейс PHP имеет только https: https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_getting_documents.html

Вот так, только запрос CURL https: https://www.elastic.co/guide/en/elasticsearch/reference/1.4/docs-multi-get.html

Кто работал с ES, помогите пожалуйста!)

2

Решение

Вам просто нужно использовать ids фильтр, как это:

$params = [
'index' => 'my_index',
'type' => 'my_type',
'body' => [
'query' => [
'filtered' => [
'filter' => [
'ids' => [
'values' => ['my_id', 'my_id2']
]
]
]
]
]
];


$results = $client->search($params);

ОБНОВИТЬ

Если вы абсолютно хотите использовать mgetтогда вы должны сделать это так:

$ params = [
'index' => 'my_index',
'type' => 'my_type',
'body' => ['ids' => ['my_id', 'my_id2']]
];

$ response = $ client-> mget ($ params);
3

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

Просто добавьте нижнюю строку во время вставки

"refresh"=> true
-1

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