'id不能为空。'尝试从ElasticSearch中删除时出错

时间:2016-11-23 12:37:11

标签: php elasticsearch

我有ElasticSearch 5.0.0计算机,PHPElasticSearch的标准$client = ClientBuilder::create()->build(); $params = [ 'index' => 'layers' 'type' => 'layers_type' 'body' => [ 'bool' => [ 'should' => [ [ 'multi_match' => [ 'query' => ["304"], 'fields' => ["id"] // not a surrogate _id, by my own id, that is a part of my index properties ] ] ] ] ] ]; $client->delete($params); 客户端,我使用composer安装。一切正常,除了删除操作。我无法通过查询删除,因此得到此错误消息:

  

未捕获的异常   'Elasticsearch \ Common \ Exceptions \ InvalidArgumentException'with   消息'id不能为空。'

这是我尝试删除的方式:

innerHTML

那么,我该如何解决呢?我是否需要安装任何插件?如果是,我该如何在我的Windows机器上执行此操作?

1 个答案:

答案 0 :(得分:1)

delete function需要一个ID,因为它意味着删除单个文档,这就是您收到该错误的原因。

为了做你想做的事,你需要deleteByQuery函数,但需要2.x中的it has been removed而不是添加回来(尚未)。

您可以在此期间使用Elastica PHP客户端。它符合5.0和supports the deleteByQuery feature