java 执行es中的sql

import org.apache.http.HttpHost;

import org.elasticsearch.client.Request;

import org.elasticsearch.client.Response;

import org.elasticsearch.client.RestClient;

import org.elasticsearch.client.RestHighLevelClient;

import java.io.*;

import java.nio.charset.StandardCharsets;

import java.util.HashSet;

public class ReadEsSql {

public static void main(String[] args) {

try (RestHighLevelClient client = new RestHighLevelClient(

RestClient.builder(

new HttpHost("host1", 9200, "http"),

new HttpHost("host2", 9200, "http"),

new HttpHost("host3", 9200, "http")

))) {

//写本地

BufferedWriter writer = new BufferedWriter(new FileWriter("data/result.txt", true));

String sql = String.format("{\"query\": \"select * from \\\"index\\\" \" } ,\"fetch_size\":100000");

Request request = new Request("POST", "/_sql?format=txt");

request.setJsonEntity(sql);

Response response = client.getLowLevelClient().performRequest(request);

// 正确处理响应实体

BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), StandardCharsets.UTF_8));

String data;

HashSet<String> set = new HashSet<>();

while ((data = reader.readLine()) != null) {

set.add(data);

}

set.forEach(it -> {

try {

writer.write(it + "\n");

} catch (IOException e) {

throw new RuntimeException(e);

}

});

writer.flush();

} catch (IOException e) {

e.printStackTrace();

}

}

}

相关推荐
青衫码上行12 小时前
【JavaWeb学习 | 第17篇】JSP内置对象
java·开发语言·前端·学习·jsp
core51212 小时前
实战:用 Spring Boot 搭建 Model Context Protocol (MCP) 服务
java·spring boot·后端·model·模型·mcp
2201_7578308712 小时前
线程池超详细解释
java
yunson_Liu12 小时前
记一次Elasticsearch cpu负载过高解决全过程
elasticsearch
编程修仙12 小时前
第二篇 搭建第一个spring程序
java·数据库·spring
麦麦鸡腿堡12 小时前
Java_网络上传文件与netstat指令
java·服务器·网络
爱吃烤鸡翅的酸菜鱼12 小时前
【RabbitMQ】发布订阅架构深度实践:构建高可用异步消息处理系统
java·spring boot·分布式·后端·websocket·架构·rabbitmq
组合缺一12 小时前
Solon AI 开发学习10 - chat - 工具调用概念介绍
java·人工智能·学习·ai·llm·solon
曼巴UE512 小时前
UE5 C++ TSet 创建初始和迭代
java·c++·ue5
TangGeeA12 小时前
Linux CFS(完全公平调度器)全面总结
java·linux·服务器