博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python elasticsearch delete_如何从Elasticsearch中删除文档
阅读量:5322 次
发布时间:2019-06-14

本文共 789 字,大约阅读时间需要 2 分钟。

由于几个原因,已从版本2中的ES核心中删除了Delete By Query API。这个函数变成了一个插件。您可以在此处查找更多详细信息:

因为我不想添加另一个依赖项(因为我以后需要在docker映像中运行这个),所以我编写了一个自己的函数来解决这个问题。我的解决方案是搜索具有指定索引和类型的所有引号。之后,我使用Bulk API删除它们:def delete_es_type(es, index, type_):

try:

count = es.count(index, type_)['count']

response = es.search(

index=index,

filter_path=["hits.hits._id"],

body={"size": count, "query": {"filtered" : {"filter" : {

"type" : {"value": type_ }}}}})

ids = [x["_id"] for x in response["hits"]["hits"]]

if len(ids) > 0:

return

bulk_body = [

'{

{"delete": {
{"_index": "{}", "_type": "{}", "_id": "{}"}}}}'

.format(index, type_, x) for x in ids]

es.bulk('\n'.join(bulk_body))

# es.indices.flush_synced([index])

except elasticsearch.exceptions.TransportError as ex:

print("Elasticsearch error: " + ex.error)

raise ex

我希望这能帮助未来的谷歌用户;)

转载地址:http://hshhv.baihongyu.com/

你可能感兴趣的文章
Leetcode 589. N-ary Tree Preorder Traversal
查看>>
正则表达式
查看>>
arcgis api 4.x for js 结合 Echarts4 实现散点图效果(附源码下载)
查看>>
YTU 2625: B 构造函数和析构函数
查看>>
apache自带压力测试工具ab的使用及解析
查看>>
加固linux
查看>>
10.17动手动脑
查看>>
WPF中Image显示本地图片
查看>>
Java多线程基础(一)
查看>>
SQL Server中利用正则表达式替换字符串
查看>>
[poj1006]Biorhythms
查看>>
Hyper-V虚拟机上安装一个图形界面的Linux系统
查看>>
Hover功能
查看>>
js千分位处理
查看>>
Mac---------三指拖移
查看>>
字符串类型的相互转换
查看>>
HTTP状态码
查看>>
iOS如何过滤掉文本中特殊字符
查看>>
基础学习:C#中float的取值范围和精度
查看>>
javaagent 简介
查看>>