记录一次es写入操作
场景:
同步商品数据到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写入操作相关推荐
- ElasticSearch面试 - es 写入数据的工作原理是什么啊?
ElasticSearch面试 - es 写入数据的工作原理是什么啊? 面试题 es 写入数据的工作原理是什么啊?es 查询数据的工作原理是什么啊?底层的 lucene 介绍一下呗?倒排索引了解吗? ...
- 面试3连炮:聊聊ES写入数据的原理?查询数据的原理?倒排索引了解吗?
面试题 es 写入数据的工作原理是什么啊? es 查询数据的工作原理是什么啊? 底层的 lucene 介绍一下呗? 倒排索引了解吗? 面试问这个,其实面试官就是要看看你了解不了解 es 的一些基本原理 ...
- python对文件的读操作有哪些方法-Python中文件的读取和写入操作
从文件中读取数据 读取整个文件 这里假设在当前目录下有一个文件名为'pi_digits.txt'的文本文件,里面的数据如下: 3.1415926535 8979323846 2643383279 wi ...
- python对文件的读操作方法有哪些-Python中文件的读取和写入操作
从文件中读取数据 读取整个文件 这里假设在当前目录下有一个文件名为'pi_digits.txt'的文本文件,里面的数据如下: 3.1415926535 8979323846 2643383279 wi ...
- firefly-rk3399开发板100天之第2天 记录firefly-rk3399 wiki中gpio操作
firefly-rk3399开发板100天之第2天 记录firefly-rk3399 wiki中gpio操作 Docs » GPIO 使用 GPIO 使用 简介 GPIO, 全称 General-Pu ...
- xml 和android脚本之家,Android利用Document实现xml读取和写入操作
本文实例为大家分享了利用Document实现xml读取和写入操作,供大家参考,具体内容如下 首先先来介绍一下什么xml?xml是可扩展标记语言,他可以用来标记数据,定义数据类型.是一种允许用户对自己标 ...
- python爬虫写入数据库_Python爬虫数据写入操作
Python Scrapy爬虫数据写入操作 在我们写完一个爬虫项目,得到了一大堆的数据,为了以后的分析和使用,我们需要把我们得到的数据进行保存.保存数据的方式主要有:保存到数据库,保存到CSV文件,保 ...
- 查看历史操作记录_燕麦课堂丨操作日志管理,为企业数据安全保驾护航
燕麦云的操作日志管理 燕麦云拥有详尽的操作日志,企业管理员可查阅所有账号对云盘文件的操作记录,追溯异常文件操作.能提供完善的跟踪.记录.监控管理机制,从登录开始到退出账号所有操作均可后台查阅.企业管理 ...
- 记录mysql客户端所有的操作
今天在网上看到这个方法,感觉不错,可以记录mysql客户端所有的操作,这个可以为mysql出现问题之后的错误排查有一定的帮助作用,具体操作如下: 在服务器上的/etc/my.cnf中的[client] ...
- java创建读取文件_Java实现文件的创建、读取、写入操作-Fun言
在日常的开发中,对文件的操作经常会有,所以今天教大家其中一种使用Java实现文件的创建.读取.写入操作 创建文件String filenameTemp = "D:\demo.txt" ...
最新文章
- 用 Python 将微信热文转换成Word文档 | 神级操作
- mysql 排除另一表_MYSQL 两表 排除 重复记录
- Mac AndroidStudio常用快捷键
- T1042/T2080芯片工控主板对比
- 漫步最优化三十五——共轭
- 软件过程评估和软件能力评价的方法与步骤
- Windows中下载并安装RabbitMQ
- java爬取_java实现爬取知乎用户基本信息
- python不能创建字典的是_python试卷-不能创建一个字典的语句
- kb2999226此更新不适用你的计算机,Windows Server 2012 R2 安装补丁KB2999226提示此更新不适合用于计算机...
- matlab 二元函数 定义,实验五用matlab求二元函数及极值.doc
- SysTick系统滴答定时器
- Linux面试题汇总-2
- 【深度学习】常见的提高模型泛化能力的方法
- 和成熟男人谈恋爱是什么感觉
- 不忍了!自己来搭建一个网盘
- ecstore2.0数据库词典
- Ubuntu 20.04下搭建奥比中光-Astra(详细教程)
- 手把手教你用Python爬中国电影票房数据
- Typora自定义主题#简约风主题