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();

}

}

}

相关推荐
TDengine (老段)1 分钟前
MySQL/PG/TDengine 时间范围 SQL 表达式
sql·mysql·tdengine
傻啦嘿哟8 分钟前
物流爬虫实战:某丰快递信息实时追踪技术全解析
java·开发语言·数据库
倚肆8 分钟前
Spring Boot Security 全面详解与实战指南
java·spring boot·后端
茄子凉心16 分钟前
android 开机启动App
android·java·开发语言
8***f39523 分钟前
工作中常用springboot启动后执行的方法
java·spring boot·后端
低客的黑调24 分钟前
了解JVM 结构和运行机制,从小白编程Java 大佬
java·linux·开发语言
q***710130 分钟前
SQL注入(SQL Injection)攻击原理与防御措施
数据库·sql·oracle
f***R840 分钟前
解决bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException
java·数据库·sql
Halo_tjn41 分钟前
Java 相关资料
java·开发语言·计算机
Slow菜鸟1 小时前
Java开发规范(十一)| 数据全生命周期治理规范—Java应用的“数据资产化手册”
java·servlet·oracle