如何使用php批量删除elasticsearch中的文档

时间:2015-11-27 11:12:12

标签: php elasticsearch bigdata

我有以下代码从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客户端。

1 个答案:

答案 0 :(得分:3)

由于您使用的是Elasticsearch 2.1,因此您需要知道按查询删除功能已removed from the coremoved into a dedicated plugin

您需要先安装该插件才能使PHP代码正常工作。

./bin/plugin install delete-by-query