场景:

同步商品数据到es

注意事项:

1,es不能保存BigDecimal类型数据需要先转化为String类型

2,id,在此商品编码作为id

3,es类型怎么处理,es类型相当于数据库表名称,默认类型为:type_index

IndexRequest(String index, String type, String id)

4,字段格式,es字段名称格式需要把驼峰处理成下划线间隔,如userName 装 user_name

代码

public void doSyncEs(List<BaseProductInfoSap> source) throws IOException {if(CollectionUtils.isEmpty(source)){return;}BulkRequest bulkRequest = new BulkRequest();List<ReqProductInfoEsVo> vos=EsConverter.toEsVO(source);vos.stream().forEach(sap -> {//es不支持对象中包含的bigdecimal类型,将之转为stringString obj = BizStringUtils.toUnderlineJSONString(sap);Map<String,Object> objMap = JSONObject.parseObject(obj);//id为product_code,存在则更新,不存在插入String id = sap.getProductCode();IndexRequest request = new IndexRequest(EsOperateTables.BASE_PRODUCT_INFO_SAP.getValue(),EsUtils.TYPE + EsOperateTables.BASE_PRODUCT_INFO_SAP.getValue(), id);request.source(objMap);// 创建更新请求,指定index,type,id,如果indexRequest 有值 (存在该数据)则用doc指定的内容更新indexRequest中指定的source,如果不存在该数据,则插入一条indexRequest指定的source数据UpdateRequest updateRequest = new UpdateRequest(EsOperateTables.BASE_PRODUCT_INFO_SAP.getValue(),EsUtils.TYPE + EsOperateTables.BASE_PRODUCT_INFO_SAP.getValue(),id);updateRequest.doc(objMap);updateRequest.upsert(request);// 将更新请求加入批量操作请求bulkRequest.add(updateRequest);});restHighLevelClient.bulk(bulkRequest, RequestOptions.DEFAULT);
}

记录一次es写入操作相关推荐

  1. ElasticSearch面试 - es 写入数据的工作原理是什么啊?

    ElasticSearch面试 - es 写入数据的工作原理是什么啊? 面试题 es 写入数据的工作原理是什么啊?es 查询数据的工作原理是什么啊?底层的 lucene 介绍一下呗?倒排索引了解吗? ...

  2. 面试3连炮:聊聊ES写入数据的原理?查询数据的原理?倒排索引了解吗?

    面试题 es 写入数据的工作原理是什么啊? es 查询数据的工作原理是什么啊? 底层的 lucene 介绍一下呗? 倒排索引了解吗? 面试问这个,其实面试官就是要看看你了解不了解 es 的一些基本原理 ...

  3. python对文件的读操作有哪些方法-Python中文件的读取和写入操作

    从文件中读取数据 读取整个文件 这里假设在当前目录下有一个文件名为'pi_digits.txt'的文本文件,里面的数据如下: 3.1415926535 8979323846 2643383279 wi ...

  4. python对文件的读操作方法有哪些-Python中文件的读取和写入操作

    从文件中读取数据 读取整个文件 这里假设在当前目录下有一个文件名为'pi_digits.txt'的文本文件,里面的数据如下: 3.1415926535 8979323846 2643383279 wi ...

  5. firefly-rk3399开发板100天之第2天 记录firefly-rk3399 wiki中gpio操作

    firefly-rk3399开发板100天之第2天 记录firefly-rk3399 wiki中gpio操作 Docs » GPIO 使用 GPIO 使用 简介 GPIO, 全称 General-Pu ...

  6. xml 和android脚本之家,Android利用Document实现xml读取和写入操作

    本文实例为大家分享了利用Document实现xml读取和写入操作,供大家参考,具体内容如下 首先先来介绍一下什么xml?xml是可扩展标记语言,他可以用来标记数据,定义数据类型.是一种允许用户对自己标 ...

  7. python爬虫写入数据库_Python爬虫数据写入操作

    Python Scrapy爬虫数据写入操作 在我们写完一个爬虫项目,得到了一大堆的数据,为了以后的分析和使用,我们需要把我们得到的数据进行保存.保存数据的方式主要有:保存到数据库,保存到CSV文件,保 ...

  8. 查看历史操作记录_燕麦课堂丨操作日志管理,为企业数据安全保驾护航

    燕麦云的操作日志管理 燕麦云拥有详尽的操作日志,企业管理员可查阅所有账号对云盘文件的操作记录,追溯异常文件操作.能提供完善的跟踪.记录.监控管理机制,从登录开始到退出账号所有操作均可后台查阅.企业管理 ...

  9. 记录mysql客户端所有的操作

    今天在网上看到这个方法,感觉不错,可以记录mysql客户端所有的操作,这个可以为mysql出现问题之后的错误排查有一定的帮助作用,具体操作如下: 在服务器上的/etc/my.cnf中的[client] ...

  10. java创建读取文件_Java实现文件的创建、读取、写入操作-Fun言

    在日常的开发中,对文件的操作经常会有,所以今天教大家其中一种使用Java实现文件的创建.读取.写入操作 创建文件String filenameTemp = "D:\demo.txt" ...

最新文章

  1. 用 Python 将微信热文转换成Word文档 | 神级操作
  2. mysql 排除另一表_MYSQL 两表 排除 重复记录
  3. Mac AndroidStudio常用快捷键
  4. T1042/T2080芯片工控主板对比
  5. 漫步最优化三十五——共轭
  6. 软件过程评估和软件能力评价的方法与步骤
  7. Windows中下载并安装RabbitMQ
  8. java爬取_java实现爬取知乎用户基本信息
  9. python不能创建字典的是_python试卷-不能创建一个字典的语句
  10. kb2999226此更新不适用你的计算机,Windows Server 2012 R2 安装补丁KB2999226提示此更新不适合用于计算机...
  11. matlab 二元函数 定义,实验五用matlab求二元函数及极值.doc
  12. SysTick系统滴答定时器
  13. Linux面试题汇总-2
  14. 【深度学习】常见的提高模型泛化能力的方法
  15. 和成熟男人谈恋爱是什么感觉
  16. 不忍了!自己来搭建一个网盘
  17. ecstore2.0数据库词典
  18. Ubuntu 20.04下搭建奥比中光-Astra(详细教程)
  19. 手把手教你用Python爬中国电影票房数据
  20. Typora自定义主题#简约风主题

热门文章

  1. 全国医疗机构勒索病毒事件公告:阿里云发布公益行动
  2. Structs 2 session 学习
  3. 使用AsyncDisplayKit提升UICollectionView和UITableView的滚动性能
  4. 关于CF平台中基础服务的监控方案
  5. android trace获取和分析
  6. 给我的两个小站点带点外链
  7. Linux 文件系统启动记录
  8. FRR BGP协议分析8 -- BGP 层3隧道 (2)
  9. Linux进程的管理与调度(一)--- Linux进程描述符task_struct结构体详解
  10. UMHexagonS算法优化