# SpringBoot Configurar el paquete Java de ElasticSearch7.4.0 Publicar Uso del complemento sql de Elasticsearch

SpringBoot configura el paquete Java de ElasticSearch7.4.0 La publicación usa el complemento sql de Elasticsearch

Es configuración

Introducir dependencias
<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-high-level-client</artifactId>
    <version>7.4.0</version>
</dependency>
Clase de configuración
@Configuration
public class BaseElasticConfig {
    
    

    private Logger logger= LoggerFactory.getLogger(BaseElasticConfig.class);

    @Bean
    public RestHighLevelClient esRestClient(){
    
    
        logger.info("Es初始化开始==========");
        RestHighLevelClient client = new RestHighLevelClient(
                RestClient.builder(
                        //在这里配置你的elasticsearch的情况
                        new HttpHost("127.0.0.1", 9200, "http")
                )
        );
        logger.info("Es初始化结束==========");
        return client;
    }
}

Operación es

Nuevo índice: se informará un error cuando exista el índice
@RequestMapping("/createindex")
public ResponseInfo createIndex() {
    
    
    try {
    
    
        CreateIndexRequest createIndexRequest = new CreateIndexRequest("test");
        CreateIndexResponse createIndexResponse=client.indices().create(createIndexRequest, RequestOptions.DEFAULT);
        return null;
    }catch (Exception e){
    
    
        e.printStackTrace();
        return null;
    }
}
Determine si el índice existe
@RequestMapping("/exist")
public boolean testExistIndex() throws IOException {
    
    
	GetIndexRequest request = new GetIndexRequest("test");
	boolean exists = client.indices().exists(request, RequestOptions.DEFAULT);
	return exists;
}

Encapsule la solicitud de publicación y use el complemento Sql para consultar los resultados

Use java para simular el envío de la siguiente solicitud de publicación, usando el complemento sql

Inserte la descripción de la imagen aquí

Con este método, los resultados de la consulta son los siguientes: obtener columnas y filas

Inserte la descripción de la imagen aquí

Solicitud de publicación de paquete Java para simular el envío de solicitud de publicación
/**
 * 封装Post查询Es中的结果
 */
public  String getEsResultBysql( String sql) {
    
    
    PrintWriter out = null;
    BufferedReader in = null;
    String result = "";
    try {
    
    
        // 请求的Url
        String url_location = "http://127.0.0.1:9200/_sql";
        // 请求体
        String content = "{\"query\":\"" + sql + "\"}";
        URL realUrl = new URL(url_location);
        // 打开和URL之间的连接
        URLConnection conn = realUrl.openConnection();
        // 设置通用的请求属性
        conn.setRequestProperty("accept", "*/*");
        conn.setRequestProperty("connection", "Keep-Alive");
        conn.setRequestProperty("Content-Type", "application/json");
        conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
        // 发送POST请求必须设置如下两行
        conn.setDoOutput(true);
        conn.setDoInput(true);
        ((HttpURLConnection) conn).setRequestMethod("POST");
        // 获取URLConnection对象对应的输出流
        out = new PrintWriter(conn.getOutputStream());
        // 发送请求参数
        out.print(content);
        // flush输出流的缓冲
        out.flush();
        // 定义BufferedReader输入流来读取URL的响应
        in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        String line;
        while ((line = in.readLine()) != null) {
    
    
            result += line;
        }
    } catch (Exception e) {
    
    
        System.out.println("发送 POST 请求出现异常!"+e);
        e.printStackTrace();
    }
    //使用finally块来关闭输出流、输入流
    finally{
    
    
        try{
    
    
            if(out!=null){
    
    
                out.close();
            }
            if(in!=null){
    
    
                in.close();
            }
        }
        catch(IOException ex){
    
    
            ex.printStackTrace();
        }
    }
    return result;
}

Puede escribir sql para la consulta Es, muy agradable

Supongo que te gusta

Origin blog.csdn.net/qq_37248504/article/details/108247875
Recomendado
Clasificación