Используйте клиента 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, помогите пожалуйста!)
Вам просто нужно использовать 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);
Просто добавьте нижнюю строку во время вставки
"refresh"=> true