首页 > 其他分享 >es批量分页导入数据

es批量分页导入数据

时间:2022-09-19 09:33:09浏览次数:67  
标签:批量 prepareData record 2000 导入 page es size

es批量分页导入数据

pojo类:

(将时间类的加上注解)

image-20220918230302377

service层:

(注意的是查找器无条件,就是查找所有,发送请求是最后发送)
修改:2022.09.19 page是从页数1开始

@Service
public class ItemService extends ServiceImpl<ItemMapper, Item> implements IItemService {
    @Autowired
    private RestHighLevelClient client;
    @Autowired
    private ItemMapper itemMapper;

    @Override
    public void prepareData() {
        List<Item> items = itemMapper.selectList(null);
        //获得总量
        int size = items.size();
        //计算页数
        int page = size % 2000 == 0 ? size / 2000 : size / 2000 + 1;
        int i = 0;
        //查找数据
        //LambdaQueryWrapper<Item> lqw = Wrappers.lambdaQuery(Item.class);
        while (i <= page) {
            Page<Item> itemPage = new Page<>(i, 2000);
            Page<Item> page1 = page(itemPage);
            List<Item> records = page1.getRecords();
            //创建请求
            BulkRequest request = new BulkRequest();
            for (Item record : records) {
                request.add(new IndexRequest("item")
                        .id(record.getId().toString())
                        .source(JSON.toJSONString(record), XContentType.JSON));
                //发送请求
            }
            try {
                client.bulk(request, RequestOptions.DEFAULT);
            } catch (IOException e) {
                e.printStackTrace();
            }
            i++;
        }
    }

controller层:

(该层只是调用,方法名自取)

    @GetMapping("/prepareData")
    public void prepareData() throws IOException {
        itemService.prepareData();
        //itemService.prepareData2();
    }

标签:批量,prepareData,record,2000,导入,page,es,size
From: https://www.cnblogs.com/wzztg/p/16706219.html

相关文章

  • ES6 对String做的常用升级优化
    ES61.let有什么用,为什么有了var还要使用let在ES6之前,声明变量只能用var,var声明变量有很多不合理的点,准确的说是因为ES5中没有块级作用域是很不合理的,甚至可以说是一门语......
  • Node.js(二)express
    npminit-y(初始化项目)npminstallexpress(引入express)npxexpress-generator-e(自动生成模板。添加对ejs模板引擎的支持)app.jsconstexpress=require("express......
  • AGC053F ESPers
    首先这题可以转化成“最后一次两个相等之前,有多少个ESPer投过票”计数。我的想法:把序列看成-1给少的投票,+1给大的投票,相等时只能使用+1。[1xxxxx][1xxxx......
  • cypress无头模式运行,生成测试报告
    1.内置测试报告 npxcypressrun--reporter=spec2.指定运行用例  npxcypressrun--reporter=spec--speccypress\integration\cypress-study\web\page\should_de......
  • Leetcode solution 2353. Design a Food Rating System
     ProblemStatement Designafoodratingsystemthatcandothefollowing:Modify theratingofafooditemlistedinthesystem.Returnthehighest-rated......
  • ESP8266升級SDK到V3.0版本編譯報錯
    編譯報錯信息bin/libmain2.a(app_main.o):Infunction`user_uart_wait_tx_fifo_empty':(.irom0.text+0x678):undefinedreferenceto`user_pre_init'bin/libmain2.a......
  • Typescript类型体操 - PercentageParser
    题目中文实现类型PercentageParser。根据规则/^(\+|\-)?(\d*)?(\%)?$/匹配类型T。匹配的结果由三部分组成,分别是:[正负号,数字,单位],如果没有匹配,则默认是空字符串......
  • Typescript类型体操 - DropChar
    题目中文从字符串中剔除指定字符。例如:typeButterfly=DropChar<'butterfly!',''>;//'butterfly!'EnglishDropaspecifiedcharfromastring.......
  • 2022 Jiangsu Collegiate Programming Contest
    A.PENTAKILL!把每个一个人的击杀序列分开,判断是否有连续五个不同的击杀就好#include<bits/stdc++.h>usingnamespacestd;map<string,vector<string>>st;int......
  • Codeforces Round #316 (Div. 2) D Tree Requests
    TreeRequests判断\(V_i\)的子树中,深度为\(h_i\)的结点上所带有的字符,能否组成一个回文串启发式合并维护所有深度上不同字符的数量,并且维护其奇数字符出现的次数如......