#SpringBoot ElasticSearch7.4.0javaパッケージの構成PostUseElasticsearchのsqlプラグイン

SpringBootはElasticSearch7.4.0javaパッケージを構成しますPostはElasticsearchのsqlプラグインを使用します

Es構成

依存関係を導入する
<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-high-level-client</artifactId>
    <version>7.4.0</version>
</dependency>
構成クラス
@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;
    }
}

Es操作

新しいインデックス:インデックスが存在する場合、エラーが報告されます
@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;
    }
}
インデックスが存在するかどうかを確認します
@RequestMapping("/exist")
public boolean testExistIndex() throws IOException {
    
    
	GetIndexRequest request = new GetIndexRequest("test");
	boolean exists = client.indices().exists(request, RequestOptions.DEFAULT);
	return exists;
}

投稿リクエストをカプセル化し、Sqlプラグインを使用して結果をクエリします

javaを使用して、sqlプラグインを使用して次のPostリクエストの送信をシミュレートします

ここに写真の説明を挿入

このメソッドを使用すると、クエリ結果は次のようになります。getColumns and Rows

ここに写真の説明を挿入

投稿リクエストの送信をシミュレートするJavaパッケージの投稿リクエスト
/**
 * 封装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;
}

あなたはEsクエリのためのsqlを書くことができます、とてもいいです

おすすめ

転載: blog.csdn.net/qq_37248504/article/details/108247875