首页 > 其他分享 >18. ElasticSearch系列之批量插入与更新

18. ElasticSearch系列之批量插入与更新

时间:2022-10-21 21:36:50浏览次数:76  
标签:count index 批量 18 actions item ElasticSearch id

本文介绍工作中Python版常用的高效ES批量插入、更新数据方式

1. 批量插入
import pandas as pd
from elasticsearch import helpers

actions = list()
count = 0
for index, item in merged_df.iterrows():
    // 过滤nan值
    filted_item = dict(filter(lambda x: pd.notna(x[1]),item.items()))
    action = {
        "_op_type": "index", // index update
        "_index": "community_summary", // 索引名
        "_id": item['id'], // 文档ID
        "_source": filted_item // 文档值
    }
    actions.append(action)
    if len(actions) == 1000:
        // 批量写入
        helpers.bulk(es12_client.elastic_client, actions)
        count += len(actions)
        print(count)
        actions.clear()
if len(actions) > 0:
    helpers.bulk(es12_client.elastic_client, actions)
    count += len(actions)
    print(count)
    actions.clear()

2.批量更新

批量更新只需要改动action的以下内容即可

 action = {
	'_op_type': 'update', // 此处改为update
        '_index': item['index'],
        '_id': item_['_id'],
        'doc': {'estate_type': item['映射物业类型']} // key值改为doc即可
}

欢迎关注公众号算法小生沈健的技术博客

标签:count,index,批量,18,actions,item,ElasticSearch,id
From: https://www.cnblogs.com/shenjian-online/p/16814812.html

相关文章

  • 解决oracle18c没有hr用户
    1.查找系统变量ORACLE_HOME的值2.按照路径寻找sql文件ORACLE_HOME变量值+demo\schema\human_resources3.把hr_main.sql脚本文件放在此处4.登入sys用户执行@+路径+文......
  • CF818G Four Melodies 压缩图建边
    看到题解有压缩图的tag,以为是很高大上的玩意点进去发现竟然是不要建多余的边捏..正确性:如果a->下一个和它值差为1的元素,那么后面还有好几个和它值差为1的元素呢?能完美......
  • ArcGISPro 批量插入层图并将图层符号设置为指定目标图层的样式
    实际应用中,有一个GDB存了10924张路径栅格数据,现在要将个10942张栅格数据添加到ArcGISPro中,且要按照一个Pro中已经配好符号样式的图层,设置这个10942张栅格数据,效果如下图......
  • linux shell中利用关键字批量移动或复制文件
     001、[root@localhosttest3]#lsa34a45b34b54c23c34dirab[root@localhosttest3]#tree.├──a34├──a45├──b34├──b54├──c23......
  • LOJ #2351. 「JOI 2018 Final」毒蛇越狱
    题面传送门奇妙的看上去不能过的题目。首先有一个非常sb的暴力,大概就是枚举?的子集,然后统计,时间复杂度\(O(2^{cnt_1})\)单次。直接算没有优化空间,考虑子集容斥,先FWT预处......
  • 2022/10/18 近期面试记录
    最近面试了好多,被问了好多,杂七杂八的东西。我只能记下一部分:1.问:c++和lua怎么交互的。c++怎么调用的lua,lua要怎么调用c++。如何实现lua热更新。 2.问:在项目中有用到哪......
  • Wallys/IPQ4018/IPQ4028 2x2 2.4Ghz 2x2 5Ghz Industrial-grade //wifi5 Support 11AB
    Wallys/IPQ4018/IPQ40282x22.4Ghz2x25GhzIndustrial-grade//wifi5Support11ABGN/AC IPQ40x8/IPQ40x9istheindustry'sfirstWave2802.11ACSoCWiFisolut......
  • java 批量插入
    1.在Mapper中/***批量添加实体*@paramequmentEntityList*/voidaddBatch(@Param("equmentEntityList")List<EqumentEntity>equmentEntityL......
  • P1850 [NOIP2016 提高组] 换教室
    [NOIP2016提高组]换教室题目描述对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程。在可以选择的课程中,有\(2n\)节课程安排在\(n\)个......
  • Elasticsearch-----介绍与增删改查操作
    一、介绍:1、概念:是功能非常强大的全文搜索引擎,目的是为了能快速的查询数据2、核心概念:接近实时(NRT):Elasticsearch是一个接近实时的搜索平台。从索引一个文档直到这个文档能......