Jas*_*lin 0 php elasticsearch elasticsearch-plugin
我希望能够使用elasticsearch php库通过查询删除文档.我实际上想要删除我的类型中的所有文档.我可以使用正常的curl XDELETE请求来实现这一点,但是我无法使用弹性搜索的PHP库来使用它.
是的我已经安装了delete-by-query插件,因此原始请求有效.
我目前的代码:
$params = [
'index' => 'sanctions_lists',
'type' => $listName,
'body' => [
'query' => [
'match_all' => []
]
]
];
return $this->delete($params);
Run Code Online (Sandbox Code Playgroud)
结果是
Client.php第1440行中的InvalidArgumentException:id不能为null.
从我的错误消息(ID不能为空)它看起来删除查询可能是php库的限制只允许通过id删除.
如果我必须在我的应用程序内执行此函数的原始HTTP请求,当php库对应用程序中的其他查询非常有用时,会有点烦人.
问题摘要
有没有一种解决方法可以使用elasticsearch php库通过查询删除而无需触及库代码?
不言而喻,但感谢任何花时间查看和帮助我的问题的人.干杯.
编辑
包括它有助于我使用:
elasticsearch php库版本 v2.1.5
你需要使用这个deleteByQuery()函数,如下所示:
$params = [
'index' => 'sanctions_lists',
'type' => $listName,
'body' => [
'query' => [
'match_all' => []
]
]
];
return $this->deleteByQuery($params);
Run Code Online (Sandbox Code Playgroud)
如果您想查看源代码,请点击此处
$params = [
"index" => "my_index",
"type" => "my_type",
"body" => [
"query" => [
"match_all" => (object)[]
]
]
];
$client->deleteByQuery($params);
Run Code Online (Sandbox Code Playgroud)
根据@Val的答案,U可能会遇到错误,因此请注意“ match_all” =>(object)[]重新键入。我发现在这里
| 归档时间: |
|
| 查看次数: |
2664 次 |
| 最近记录: |