问题描述
我在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 (将#修改为@)