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

У меня есть следующий код для удаления документов из эластичного поиска.

public function deleteByQuery(){

$client = $this->_connectElasticSearchClient();
$params = [
'index' => $this->_indexName,
'type' => $this->_typeName,
'body' => [
'query' => [
'match' => [
'brand' => 'apple'
]
]
]
];
$response = $client->deleteByQuery($params);
print_r($response);die;
}

В ответ я получаю следующее.

{
"found": false,
"_index": "gadgets",
"_type": "products",
"_id": "_query",
"_version": 1,
"_shards": {
"total": 1,
"successful": 1,
"failed": 0
}
}

Попытался изменить строку запроса и all.but бесполезно. При поиске по вышеуказанному запросу я также получаю данные.

Я использую Elasticsearch-PHP Client.

1

Решение

Поскольку вы используете Elasticsearch 2.1, вам нужно знать, что функция удаления по запросу была удален из ядра а также перешел в выделенный плагин.

Вам нужно сначала установить этот плагин, чтобы ваш PHP-код работал.

./bin/plugin install delete-by-query
3

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

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

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