Php ';id不能为空。';尝试从ElasticSearch中删除时出错
我有Php ';id不能为空。';尝试从ElasticSearch中删除时出错,php,elasticsearch,Php,elasticsearch,我有Windowsmachine、ElasticSearch 5.0.0和ElasticSearch的标准PHP客户端,我使用composer安装了该客户端。除删除操作外,所有操作都正常。我无法通过查询删除,因此得到以下错误消息: 未捕获异常 带有的“Elasticsearch\Common\Exceptions\InvalidArgumentException” 消息“id不能为空。” 以下是我尝试删除的方式: $client = ClientBuilder::create()->bui
Windows
machine、ElasticSearch 5.0.0
和ElasticSearch
的标准PHP
客户端,我使用composer安装了该客户端。除删除操作外,所有操作都正常。我无法通过查询删除,因此得到以下错误消息:
未捕获异常
带有的“Elasticsearch\Common\Exceptions\InvalidArgumentException”
消息“id不能为空。”
以下是我尝试删除的方式:
$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);
那么,我该如何修复它呢?我是否需要安装任何插件?如果需要,我如何在我的Windows计算机上安装插件?需要一个id,因为它意味着删除单个文档,这就是为什么会出现该错误的原因
为了做您想要做的事情,您需要使用deleteByQuery
函数,但是在2.x中,还没有添加回来
您可以同时使用PHP客户端。它符合5.0标准。很高兴它能起到作用!