我有以下代码从elasticsearch中删除文档。
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客户端。
答案 0 :(得分:3)
由于您使用的是Elasticsearch 2.1,因此您需要知道按查询删除功能已removed from the core和moved into a dedicated plugin。
您需要先安装该插件才能使PHP代码正常工作。
./bin/plugin install delete-by-query