如何从Elasticsearch索引中获取所有文档并将其转换为CSV Java API

问题描述

我在7.9的弹性搜索索引中记录了25000多个数据。我已经获取了所有文档,并将其转换为csv。我尝试使用滚动API,但没有得到预期的结果。我在下面给出了我的代码

主要方法

io_service

如何使用FileWriter writer = new FileWriter("D:\\Users\\jjj\\jjjjj\\sqlEXPRADV_x64_ENU\\sto1.csv"); RestHighLevelClient esClient = esClient(); SearchRequest searchRequest = new SearchRequest("test-2020.10.09"); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); searchSourceBuilder.query(QueryBuilders.matchAllQuery()); searchSourceBuilder.size(1000); searchRequest.source(searchSourceBuilder); searchRequest.scroll(TimeValue.timeValueSeconds(200)); SearchResponse searchResponse = esClient.search(searchRequest,RequestOptions.DEFAULT); String scrollId = searchResponse.getScrollId(); SearchHits hits = searchResponse.getHits(); SearchScrollRequest scrollRequest = new SearchScrollRequest(scrollId); scrollRequest.scroll(TimeValue.timeValueSeconds(2)); SearchResponse searchScrollResponse = esClient.scroll(scrollRequest,RequestOptions.DEFAULT); scrollId = searchScrollResponse.getScrollId(); hits = searchScrollResponse.getHits(); SearchResponse searchRespon = esClient.scroll(scrollRequest,RequestOptions.DEFAULT); final SearchHit[] searchHits = searchRespon.getHits().getHits(); for (SearchHit hit : searchHits) { courseList.add(hit.getSourceAsstring()); } System.out.println(hits.getTotalHits().value); System.out.println(hits.getHits().length); System.out.println(scrollId); System.out.println(courseList.size()); String collect = courseList.stream().collect(Collectors.joining(",")); System.out.println(collect); writer.write(collect); writer.close(); Java API实现此目标?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...