gpt4 book ai didi

php - Elasticsearch 2.3通过使用PHP库进行查询来删除类型中的所有文档

转载 作者:行者123 更新时间:2023-12-03 00:31:57 25 4
gpt4 key购买 nike

我希望能够使用elasticsearch php库通过查询删除文档。实际上,理想情况下,我想删除我类型中的所有文档。
我可以使用普通的curl XDELETE请求来实现这一点,但是我无法使用 flex 搜索的PHP库来使其正常工作。

是的,我已经安装了delete-by-query插件,因此为什么原始请求有效。

我当前的代码:

$params = [
'index' => 'sanctions_lists',
'type' => $listName,
'body' => [
'query' => [
'match_all' => []
]
]
];
return $this->delete($params);

结果是

InvalidArgumentException in Client.php line 1440: id cannot be null.



从我的错误消息(ID不能为空)中,似乎通过查询删除可能是php库的限制。仅允许通过ID删除。

如果我必须在应用程序内部执行此函数的原始HTTP请求,而php库对于应用程序中的其他查询确实非常好,那将有点烦人。

问题摘要

有没有一种解决方法,可以通过使用Elasticsearch php库通过查询删除而不触摸库代码?

不用说,但是感谢任何愿意花时间查看和帮助我的问题的人。干杯。

编辑

如果它有助于即时通讯使用:

elasticsearch php库版本 v2.1.5

最佳答案

您需要使用 deleteByQuery() function,如下所示:

$params = [
'index' => 'sanctions_lists',
'type' => $listName,
'body' => [
'query' => [
'match_all' => []
]
]
];
return $this->deleteByQuery($params);

如果您想看一下源代码,可以使用 here

关于php - Elasticsearch 2.3通过使用PHP库进行查询来删除类型中的所有文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37382980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com