@Grab(group='org.elasticsearch.client', module='elasticsearch-rest-high-level-client', version='7.15.0') import org.elasticsearch.client.RestHighLevelClient import org.elasticsearch.client.RequestOptions import org.elasticsearch.action.search.SearchRequest import org.elasticsearch.action.search.SearchResponse import org.elasticsearch.search.builder.SearchSourceBuilder import org.elasticsearch.index.query.QueryBuilders import org.elasticsearch.index.query.MatchAllQueryBuilder import java.nio.file.Files import java.nio.file.Paths def client = new RestHighLevelClient( RestClient.builder( new HttpHost("localhost", 9200, "http") ) ) // 设置要导出的索引名 def indexName = "your_index_name" // 创建一个搜索请求 def searchRequest = new SearchRequest(indexName) // 设置搜索条件,这里使用 MatchAllQueryBuilder 表示匹配所有文档 def searchSourceBuilder = new SearchSourceBuilder().query(QueryBuilders.matchAllQuery()) searchRequest.source(searchSourceBuilder) // 发送搜索请求,获取响应结果 SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT) // 处理响应结果,将搜索结果导出到文件中 def hits = searchResponse.getHits().getHits() def outputFile = Paths.get("output.json") Files.write(outputFile, new byte[0]) Files.write(outputFile, "[\n".getBytes(), StandardOpenOption.APPEND) hits.eachWithIndex { hit, index -> def source = hit.getSourceAsString() Files.write(outputFile, source.getBytes(), StandardOpenOption.APPEND) if (index < hits.size() - 1) { Files.write(outputFile, ",\n".getBytes(), StandardOpenOption.APPEND) } } Files.write(outputFile, "\n]".getBytes(), StandardOpenOption.APPEND) // 关闭 Elasticsearch 客户端 client.close()