【发布时间】:2016-09-19 20:40:06
【问题描述】:
我希望能够使用 elasticsearch php 库通过查询删除文档。实际上,理想情况下,我想删除我类型中的所有文档。 从某种意义上说,我可以使用普通的 curl XDELETE 请求来实现这一点,但是我无法使用弹性搜索的 PHP 库让它工作。
是的,我已经安装了 delete-by-query 插件,因此原始请求有效。
我当前的代码:
$params = [
'index' => 'sanctions_lists',
'type' => $listName,
'body' => [
'query' => [
'match_all' => []
]
]
];
return $this->delete($params);
结果
Client.php 第 1440 行中的 InvalidArgumentException: id 不能为空。
从我的错误消息(ID 不能为空)看来,通过查询删除可能是 php 库的限制,仅允许按 id 删除。
当 php 库对我在应用程序中的其他查询非常有用时,如果我必须在我的应用程序中执行此函数的原始 HTTP 请求,那会有点烦人。
问题摘要
有没有一种解决方法可以在不接触库代码的情况下使用 elasticsearch php 库通过查询删除?
不用说,但感谢任何花时间查看和帮助解决我的问题的人。干杯。
编辑
如果它有助于我使用:
elasticsearch php库版本v2.1.5
【问题讨论】:
-
直接(原始)HTTP 请求在工作时是什么样的? (了解这一点将有助于确定是否存在通过库提交此类请求的直接等效项,或者您是否需要编写额外的代码以获得类似的效果)。
标签: php elasticsearch elasticsearch-plugin