Elasticsearch 2.3 Удаление всех документов в типе по запросу с использованием PHP LIbrary

Я хочу, чтобы иметь возможность удалять документы по запросу с использованием библиотеки phpasticsearch php. Я на самом деле в идеале хочу удалить все документы в моем типе.
Я могу добиться этого с помощью обычного XDELETE-запроса curl, однако не могу заставить его работать, используя PHP-библиотеку эластичного поиска.

Да я установил delete-by-query Плагин, следовательно, почему необработанный запрос работает.

мой текущий код:

$params = [
'index' => 'sanctions_lists',
'type' => $listName,
'body' => [
'query' => [
'match_all' => []
]
]
];
return $this->delete($params);

результаты в

InvalidArgumentException в строке Client.php 1440:
идентификатор не может быть нулевым.

Из моего сообщения об ошибке (идентификатор не может быть нулевым) кажется, что удаление по запросу может быть ограничением библиотеки php, разрешающей удаление только по идентификатору.

Было бы немного неприятно, если бы мне пришлось выполнять необработанный HTTP-запрос для этой функции внутри моего приложения, когда библиотека php была действительно хороша для других моих запросов в приложении.

Резюме вопросов

Есть ли обходной путь для удаления по запросу с использованием библиотеки phpasticsearch php, не затрагивая код библиотеки?

Само собой разумеется, но спасибо всем, кто не торопится, чтобы посмотреть и помочь с моим вопросом. Приветствия.

редактировать

Incase это помогает им использовать:

Эластичная поисковая версия php библиотеки v2.1.5

0

Решение

Вам нужно использовать deleteByQuery() функция, как это:

$params = [
'index' => 'sanctions_lists',
'type' => $listName,
'body' => [
'query' => [
'match_all' => []
]
]
];
return $this->deleteByQuery($params);

Если вы хотите посмотреть, исходный код доступен Вот

6

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

$params = [
"index" => "my_index",
"type" => "my_type",
"body" => [
"query" => [
"match_all" => (object)[]
]
]
];

$client->deleteByQuery($params);

В соответствии с @Val ‘s ответ, U может возникнуть ошибка, поэтому заметьте «match_all» => (object) [] перепечатывание. я нашел это Вот

3

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