我在Python中找不到从Elasticsearch
中删除文档的任何示例。我现在看到的是delete
和delete_by_query
函数的定义。但由于某些原因,documentation甚至没有提供使用这些函数的微观示例。如果我不知道如何正确地将参数输入函数调用,那么单个参数列表不会告诉我太多信息。所以,我刚刚插入了一个新的文档,就像这样:
doc = {'name':'Jacobian'}
db.index(index="reestr",doc_type="some_type",body=doc)
世界上谁知道我现在如何使用delete
和delete_by_query
删除此文档?
由于在为文档编制索引时不提供文档id,因此必须从返回值中获取自动生成的文档id,并根据该id进行删除。或者可以自己定义该id,请尝试以下操作:
在另一种情况下,您需要查看返回值
按查询删除的另一个示例。假设添加了几个名为“Jacobian”的文档后,运行以下命令删除名为“Jacobian”的所有文档:
也可以这样做:
它将对大容量数据执行删除操作
由于几个原因,已从版本2中的ES核心中删除了Delete By Query API。这个函数变成了一个插件。您可以在此处查找更多详细信息:
Why Delete-By-Query is a plugin
Delete By Query Plugin
因为我不想添加另一个依赖项(因为我以后需要在docker映像中运行这个),所以我编写了一个自己的函数来解决这个问题。我的解决方案是搜索具有指定索引和类型的所有引号。之后,我使用Bulk API删除它们:
我希望这能帮助未来的谷歌用户;)
相关问题 更多 >
编程相关推荐