ElasticSearch 7.6.1 集成SpringBoot Index所有操作(无废话版)--------------------------------------------(五)

代码地址:(https://github.com/heidaodageshiwo/ElasticSearch7.6.1.git

 

 

package com.zhangqtest.zhangqiang;

import com.alibaba.fastjson.JSON;
import org.elasticsearch.action.ActionListener;
import org.elasticsearch.action.admin.indices.alias.Alias;
import org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequest;
import org.elasticsearch.action.admin.indices.alias.get.GetAliasesRequest;
import org.elasticsearch.action.admin.indices.close.CloseIndexRequest;
import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;
import org.elasticsearch.action.admin.indices.open.OpenIndexRequest;
import org.elasticsearch.action.admin.indices.open.OpenIndexResponse;
import org.elasticsearch.action.admin.indices.settings.get.GetSettingsRequest;
import org.elasticsearch.action.admin.indices.settings.get.GetSettingsResponse;
import org.elasticsearch.action.admin.indices.settings.put.UpdateSettingsRequest;
import org.elasticsearch.action.admin.indices.shrink.ResizeRequest;
import org.elasticsearch.action.admin.indices.shrink.ResizeResponse;
import org.elasticsearch.action.admin.indices.template.delete.DeleteIndexTemplateRequest;
import org.elasticsearch.action.admin.indices.validate.query.QueryExplanation;
import org.elasticsearch.action.admin.indices.validate.query.ValidateQueryRequest;
import org.elasticsearch.action.admin.indices.validate.query.ValidateQueryResponse;
import org.elasticsearch.action.support.DefaultShardOperationFailedException;
import org.elasticsearch.action.support.master.AcknowledgedResponse;
import org.elasticsearch.client.GetAliasesResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.client.core.ShardsAcknowledgedResponse;
import org.elasticsearch.client.indices.*;
import org.elasticsearch.cluster.metadata.AliasMetaData;
import org.elasticsearch.cluster.metadata.MappingMetaData;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.common.xcontent.XContentFactory;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.io.IOException;
import java.util.*;

/**
 * @PackageName com.zhangqtest.zhangqiang
 * @ClassName test
 * @Description TODO
 * @Author zhangqiang
 * @Date 2020/9/23 9:25
 * @Version 1.0
 **/
@RestController
@RequestMapping("/testzq")
public class ZhangqiangIndextest {

  @Autowired
  private RestHighLevelClient restHighLevelClient;


  @RequestMapping("/test")
  public String test() {
    return "11111111111111111111111";
  }

  /**
   * @ClassName zhangqiangtest
   * @MethodName insert
   * @Description 创建索引同步
   * @Author zhangqiang
   * @Date 2020/9/25 16:09
   * @Param []
   * @Return java.lang.String
   **/
  //  http://localhost:8080/testzq/insert
  @RequestMapping("/insert")
  public String insert() throws IOException {
    CreateIndexRequest zq = new CreateIndexRequest("field");
//        CreateIndexRequest zq = new CreateIndexRequest("shrinkindex");

    zq.settings(Settings.builder().put("index.number_of_shards", "15"));
    zq.setTimeout(TimeValue.timeValueMinutes(2));
    CreateIndexResponse createIndexResponse = restHighLevelClient.indices()
        .create(zq, RequestOptions.DEFAULT);
    System.out.println("创建索引成功" + createIndexResponse);
    return "11111111111111111111111";
  }

  /**
   * @ClassName zhangqiangtest
   * @MethodName insert1
   * @Description 创建索引异步
   * @Author zhangqiang
   * @Date 2020/9/25 16:09
   * @Param []
   * @Return java.lang.String
   **/
  //    http://localhost:8080/testzq/insert1
  @RequestMapping("/insert1")
  public String insert1() throws IOException {
    CreateIndexRequest zq = new CreateIndexRequest("zq456");
    zq.setTimeout(TimeValue.timeValueMinutes(2));
    ActionListener<CreateIndexResponse> listener = new ActionListener<CreateIndexResponse>() {
      @Override
      public void onResponse(CreateIndexResponse createIndexResponse) {
        System.out.println(createIndexResponse.isAcknowledged() + "====isAcknowledged");
        System.out.println(createIndexResponse.isShardsAcknowledged() + "====isShardsAcknowledged");
        System.out.println("成功了))))))))))))");
      }

      @Override
      public void onFailure(Exception e) {
        e.printStackTrace();
        System.out.println("失败了!!!!!!!!!!!!!!!!!!!!!!");
      }
    };
    restHighLevelClient.indices().
        createAsync(zq, RequestOptions.DEFAULT, listener);
    //System.out.println("创建索引成功");
    return "11111111111111111111111";
  }


  /**
   * @ClassName zhangqiangtest
   * @MethodName delete
   * @Description 删除索引同步
   * @Author zhangqiang
   * @Date 2020/9/25 16:10
   * @Param []
   * @Return java.lang.String
   **/
  //    http://localhost:8080/testzq/delete
  @RequestMapping("/delete")
  public String delete() throws IOException {
    DeleteIndexRequest deleteIndexRequest = new DeleteIndexRequest("zq123");

    deleteIndexRequest.timeout(TimeValue.timeValueMinutes(2));
    AcknowledgedResponse delete = restHighLevelClient.indices()
        .delete(deleteIndexRequest, RequestOptions.DEFAULT);
    System.out.println("删除索引成功" + delete);
    return "11111111111111111111111";
  }

  /**
   * @ClassName zhangqiangtest
   * @MethodName delete1
   * @Description 删除索引异步
   * @Author zhangqiang
   * @Date 2020/9/25 16:10
   * @Param []
   * @Return java.lang.String
   **/
  //    http://localhost:8080/testzq/delete1
  @RequestMapping("/delete1")
  public String delete1() throws IOException {
    DeleteIndexRequest deleteIndexRequest = new DeleteIndexRequest("zq456");
    deleteIndexRequest.timeout(TimeValue.timeValueMinutes(2));

    ActionListener<AcknowledgedResponse> actionListener = new ActionListener<AcknowledgedResponse>() {
      @Override
      public void onResponse(AcknowledgedResponse acknowledgedResponse) {
        System.out.println("删除成功了!!!!!!!");
        System.out.println("isAcknowledged:" + acknowledgedResponse.isAcknowledged());
        System.out.println("acknowledgedResponse:" + acknowledgedResponse.isFragment());
      }

      @Override
      public void onFailure(Exception e) {
        e.printStackTrace();
        System.out.println("删除失败!!!!!");
      }
    };
    restHighLevelClient.indices()
        .deleteAsync(deleteIndexRequest, RequestOptions.DEFAULT, actionListener);

    System.out.println("删除索引成功");
    return "11111111111111111111111";
  }


  /**
   * @ClassName zhangqiangtest
   * @MethodName exists
   * @Description 索引是否存在同步
   * @Author zhangqiang
   * @Date 2020/9/25 16:10
   * @Param []
   * @Return java.lang.String
   **/
  //    http://localhost:8080/testzq/exists
  @RequestMapping("/exists")
  public String exists() throws IOException {
    GetIndexRequest getIndexRequest = new GetIndexRequest("zq123");
    boolean exists = restHighLevelClient.indices().exists(getIndexRequest, RequestOptions.DEFAULT);
    System.out.println("索引是否存在:" + exists);
    return "11111111111111111111111";
  }

  /**
   * @ClassName zhangqiangtest
   * @MethodName exists1
   * @Description 索引是否存在异步
   * @Author zhangqiang
   * @Date 2020/9/25 16:11
   * @Param []
   * @Return java.lang.String
   **/
  //    http://localhost:8080/testzq/exists1
  @RequestMapping("/exists1")
  public String exists1() throws IOException {
    GetIndexRequest getIndexRequest = new GetIndexRequest("zq456111");

    ActionListener<Boolean> actionListener = new ActionListener<Boolean>() {
      @Override
      public void onResponse(Boolean aBoolean) {
        System.out.println("索引是否存在:" + aBoolean);
      }

      @Override
      public void onFailure(Exception e) {
        e.printStackTrace();
        System.out.println("索引是否存在:" + "不存在");
      }
    };
    restHighLevelClient.indices()
        .existsAsync(getIndexRequest, RequestOptions.DEFAULT, actionListener);

    return "11111111111111111111111";
  }

  /**
   * @ClassName zhangqiangtest
   * @MethodName openindex
   * @Description 打开索引同步
   * @Author zhangqiang
   * @Date 2020/9/25 16:11
   * @Param []
   * @Return java.lang.String
   **/
  //    http://localhost:8080/testzq/openindex
  @RequestMapping("/openindex")
  public String openindex() throws IOException {
    OpenIndexRequest openIndexRequest = new OpenIndexRequest("shrinkindex_shrink");
//        OpenIndexRequest openIndexRequest = new OpenIndexRequest("zq123");
    openIndexRequest.timeout(TimeValue.timeValueMinutes(2));
    openIndexRequest.timeout("2m");
    OpenIndexResponse open = restHighLevelClient.indices()
        .open(openIndexRequest, RequestOptions.DEFAULT);

    System.out.println("打开索引是否成功isAcknowledged:" + open.isAcknowledged());
    System.out.println("打开索引是否成功isFragment:" + open.isFragment());
    System.out.println("打开索引是否成功isShardsAcknowledged:" + open.isShardsAcknowledged());
    return "11111111111111111111111";
  }

  /**
   * @ClassName zhangqiangtest
   * @MethodName openindex1
   * @Description 打开索引异步
   * @Author zhangqiang
   * @Date 2020/9/25 16:11
   * @Param []
   * @Return java.lang.String
   **/
  //    http://localhost:8080/testzq/openindex1
  @RequestMapping("/openindex1")
  public String openindex1() throws IOException {
    OpenIndexRequest openIndexRequest = new OpenIndexRequest("zq123");
    ActionListener<OpenIndexResponse> actionlistener = new ActionListener<OpenIndexResponse>() {
      @Override
      public void onResponse(OpenIndexResponse openIndexResponse) {
        System.out.println("打开索引是否成功isAcknowledged:" + openIndexResponse.isAcknowledged());
        System.out.println("打开索引是否成功isFragment:" + openIndexResponse.isFragment());
        System.out
            .println("打开索引是否成功isShardsAcknowledged:" + openIndexResponse.isShardsAcknowledged());
      }

      @Override
      public void onFailure(Exception e) {
        e.printStackTrace();
        System.out.println("失败");
      }
    };
    restHighLevelClient.indices()
        .openAsync(openIndexRequest, RequestOptions.DEFAULT, actionlistener);
    return "11111111111111111111111";
  }


  /**
   * @ClassName zhangqiangtest
   * @MethodName closeindex
   * @Description 关闭索引同步
   * @Author zhangqiang
   * @Date 2020/9/25 16:11
   * @Param []
   * @Return java.lang.String
   **/
  //    http://localhost:8080/testzq/closeindex
  /*@RequestMapping("/closeindex")此处报错是低版本
  public String closeindex() throws IOException {
    CloseIndexRequest closeIndexRequest = new CloseIndexRequest("zq123");
    closeIndexRequest.timeout(TimeValue.timeValueMinutes(2));
    closeIndexRequest.timeout("2m");
    AcknowledgedResponse close = restHighLevelClient.indices()
        .close(closeIndexRequest, RequestOptions.DEFAULT);
    System.out.println("关闭索引是否成功isAcknowledged:" + close.isAcknowledged());
    System.out.println("关闭索引是否成功isFragment:" + close.isFragment());
    return "11111111111111111111111";
  }*/

  /**
   * @ClassName zhangqiangtest
   * @MethodName closeindex1
   * @Description 关闭索引异步
   * @Author zhangqiang
   * @Date 2020/9/25 16:11
   * @Param []
   * @Return java.lang.String
   **/
  //    http://localhost:8080/testzq/closeindex1
 /* @RequestMapping("/closeindex1")
  public String closeindex1() throws IOException {
    CloseIndexRequest closeIndexRequest = new CloseIndexRequest("zq123");
    closeIndexRequest.timeout(TimeValue.timeValueMinutes(2));
    closeIndexRequest.timeout("2m");
    ActionListener<AcknowledgedResponse> actionListener = new ActionListener<AcknowledgedResponse>() {
      @Override
      public void onResponse(AcknowledgedResponse acknowledgedResponse) {
        System.out.println("关闭索引是否成功isAcknowledged:" + acknowledgedResponse.isAcknowledged());
        System.out.println("关闭索引是否成功isFragment:" + acknowledgedResponse.isFragment());
      }

      @Override
      public void onFailure(Exception e) {
        e.printStackTrace();
        System.out.println("失败:");
      }
    };
    restHighLevelClient.indices()
        .closeAsync(closeIndexRequest, RequestOptions.DEFAULT, actionListener);
    return "11111111111111111111111";
  }*/

  /**
   * @ClassName zhangqiangtest
   * @MethodName shrinkindex
   * @Description 收缩索引
   * @Author zhangqiang
   * @Date 2020/9/25 16:12
   * @Param []
   * @Return java.lang.String
   **/
  //    http://localhost:8080/testzq/shrinkindex
  @RequestMapping("/shrinkindex")
  public String shrinkindex() throws IOException {

    UpdateSettingsRequest updateSettingsRequest = new UpdateSettingsRequest("shrinkindex");
    updateSettingsRequest.settings(Settings.builder().put("index.blocks.write", true));
    restHighLevelClient.indices().putSettings(updateSettingsRequest, RequestOptions.DEFAULT);

    ResizeRequest resizeRequest = new ResizeRequest("shrinkindex_shrink", "shrinkindex");

//        resizeRequest.timeout(TimeValue.timeValueMinutes(1005));
//        resizeRequest.timeout("2m");

    resizeRequest.setCopySettings(true);

    //resizeRequest.getTargetIndexRequest().settings(Settings.builder().put("index.number_of_shards", "5"));
    resizeRequest.getTargetIndexRequest()
        .settings(Settings.builder().put("index.routing.allocation.require._name", "5")
            .put("index.blocks.write", true));
    resizeRequest.getTargetIndexRequest().alias(new Alias("zqfffffff"));

    resizeRequest.timeout(TimeValue.timeValueHours(100));
    ResizeResponse shrink = restHighLevelClient.indices()
        .shrink(resizeRequest, RequestOptions.DEFAULT);
    System.out.println("关闭索引是否成功isAcknowledged:" + shrink.isAcknowledged());
    System.out.println("关闭索引是否成功isFragment:" + shrink.isFragment());
    return "11111111111111111111111";
  }


  /**
   * @ClassName zhangqiangtest
   * @MethodName putmapping
   * @Description putmapping
   * @Author zhangqiang
   * @Date 2020/9/25 16:12
   * @Param []
   * @Return java.lang.String
   **/
  //    http://localhost:8080/testzq/putmapping
  @RequestMapping("/putmapping")
  public String putmapping() throws IOException {
    PutMappingRequest putMappingRequest = new PutMappingRequest("zq123");
    Map<String, Object> jsonMap = new HashMap<>();
    Map<String, Object> message = new HashMap<>();
    message.put("type", "text");
    Map<String, Object> property = new HashMap<>();
    property.put("message", message);
    jsonMap.put("properties", property);
    putMappingRequest.source(jsonMap);
    putMappingRequest.setTimeout(TimeValue.timeValueMinutes(5));

    AcknowledgedResponse acknowledgedResponse = restHighLevelClient.indices()
        .putMapping(putMappingRequest, RequestOptions.DEFAULT);
    System.out.println("putmapping:" + acknowledgedResponse.isAcknowledged());
    return "11111111111111111111111";
  }


  /**
   * @ClassName zhangqiangtest
   * @MethodName getmapping
   * @Description getmapping
   * @Author zhangqiang
   * @Date 2020/9/25 16:23
   * @Param []
   * @Return java.lang.String
   **/
  //    http://localhost:8080/testzq/getmapping
  @RequestMapping("/getmapping")
  public String getmapping() throws IOException {
    GetMappingsRequest getMappingsRequest = new GetMappingsRequest();
    getMappingsRequest.indices("zq123");
    getMappingsRequest.setTimeout(TimeValue.timeValueMinutes(5));
    GetMappingsResponse getMappingsResponse = restHighLevelClient.indices()
        .getMapping(getMappingsRequest, RequestOptions.DEFAULT);

    Map<String, MappingMetaData> mappings = getMappingsResponse.mappings();
    MappingMetaData mappingMetaData = mappings.get("zq123");
    Map<String, Object> sourceAsMap = mappingMetaData.getSourceAsMap();
    System.out.println(JSON.toJSON(sourceAsMap));
    return "11111111111111111111111";
  }

  /**
   * @ClassName zhangqiangtest
   * @MethodName getfieldmapping
   * @Description 获取字段的类型
   * @Author zhangqiang
   * @Date 2020/9/25 16:23
   * @Param []
   * @Return java.lang.String
   **/
  //    http://localhost:8080/testzq/getfieldmapping
  @RequestMapping("/getfieldmapping")
  public String getfieldmapping() throws IOException {
    GetFieldMappingsRequest getFieldMappingsRequest = new GetFieldMappingsRequest();
    getFieldMappingsRequest.indices("field");
    getFieldMappingsRequest.fields("message", "timestamp");
    getFieldMappingsRequest.local(true);

    GetFieldMappingsResponse getFieldMappingsResponse = restHighLevelClient.indices()
        .getFieldMapping(getFieldMappingsRequest, RequestOptions.DEFAULT);
    Map<String, Map<String, GetFieldMappingsResponse.FieldMappingMetaData>> mappings1 = getFieldMappingsResponse
        .mappings();
    Map<String, GetFieldMappingsResponse.FieldMappingMetaData> field = mappings1.get("field");
    GetFieldMappingsResponse.FieldMappingMetaData fieldMappingMetaData = field.get("message");
    String s = fieldMappingMetaData.fullName();
    Map<String, Object> stringObjectMap = fieldMappingMetaData.sourceAsMap();
    System.out.println(JSON.toJSON(s) + "==========s");
    System.out.println(JSON.toJSON(stringObjectMap) + "==========stringObjectMap");

    return "11111111111111111111111";
  }

  /**
   * @ClassName zhangqiangtest
   * @MethodName indexAliases
   * @Description 给索引创建别名,或者是给多个索引创建别名
   * @Author zhangqiang
   * @Date 2020/9/25 17:14
   * @Param []
   * @Return java.lang.String
   **/
  //    http://localhost:8080/testzq/indexAliases
  @RequestMapping("/indexAliases")
  public String indexAliases() throws IOException {

    IndicesAliasesRequest indicesAliasesRequest = new IndicesAliasesRequest();
    //索引field   添加别名testabcd
     /*   IndicesAliasesRequest.AliasActions aliasActions = new IndicesAliasesRequest.AliasActions(IndicesAliasesRequest.AliasActions.Type.ADD)
                .index("field").alias("testabcd");*/

        /*IndicesAliasesRequest.AliasActions aliasActions = new IndicesAliasesRequest.AliasActions(IndicesAliasesRequest.AliasActions.Type.ADD)
                .index("field").alias("testabcd").filter("{\"term\":{\"year\":2016}}");*/
    //索引field,zq123   添加别名testadb
        /*IndicesAliasesRequest.AliasActions aliasActions = new IndicesAliasesRequest.AliasActions(IndicesAliasesRequest.AliasActions.Type.ADD)
                .indices("field", "zq123").alias("testadb");

        IndicesAliasesRequest.AliasActions aliasActions = new IndicesAliasesRequest.AliasActions(IndicesAliasesRequest.AliasActions.Type.ADD)
                .indices("field", "zq123").alias("testadb").routing("1");*/

    //索引field    移除删除别名testadb
    /*    IndicesAliasesRequest.AliasActions aliasActions = new IndicesAliasesRequest.AliasActions(IndicesAliasesRequest.AliasActions.Type.REMOVE)
                .index("field").alias("testadb");*/

    //直接删除索引
    IndicesAliasesRequest.AliasActions aliasActions = new IndicesAliasesRequest.AliasActions(
        IndicesAliasesRequest.AliasActions.Type.REMOVE_INDEX)
        .index("field");

    indicesAliasesRequest.addAliasAction(aliasActions);

    AcknowledgedResponse acknowledgedResponse = restHighLevelClient.indices()
        .updateAliases(indicesAliasesRequest, RequestOptions.DEFAULT);
    System.out.println(acknowledgedResponse.isAcknowledged() + ":isAcknowledged");

    return "11111111111111111111111";
  }


  /**
   * @ClassName zhangqiangtest
   * @MethodName ExistsAlias
   * @Description 判断别名是否存在
   * @Author zhangqiang
   * @Date 2020/9/25 17:34
   * @Param []
   * @Return java.lang.String
   **/
  //    http://localhost:8080/testzq/ExistsAlias
  @RequestMapping("/ExistsAlias")
  public String ExistsAlias() throws IOException {
    GetAliasesRequest getAliasesRequest1 = new GetAliasesRequest();
    getAliasesRequest1.aliases("testadb");
    getAliasesRequest1.local(true);
    boolean existsAlias = restHighLevelClient.indices()
        .existsAlias(getAliasesRequest1, RequestOptions.DEFAULT);
    System.out.println(":new GetAliasesRequest()方式:testadb是否 存在:" + existsAlias);

    GetAliasesRequest getAliasesRequest2 = new GetAliasesRequest();
    getAliasesRequest2.aliases("testadb_test");
    getAliasesRequest2.local(true);
    boolean existsAlias2 = restHighLevelClient.indices()
        .existsAlias(getAliasesRequest2, RequestOptions.DEFAULT);
    System.out.println(":new GetAliasesRequest()方式:testadb_test 是否 存在:" + existsAlias2);

    GetAliasesRequest getAliasesRequest3 = new GetAliasesRequest("testadb");
    boolean existsAlias3 = restHighLevelClient.indices()
        .existsAlias(getAliasesRequest3, RequestOptions.DEFAULT);
    System.out.println(":new GetAliasesRequest(\"\")方式:testadb 是否 存在:" + existsAlias3);

    GetAliasesRequest getAliasesRequest4 = new GetAliasesRequest("testadb_test");
    boolean existsAlias4 = restHighLevelClient.indices()
        .existsAlias(getAliasesRequest4, RequestOptions.DEFAULT);
    System.out.println(":new GetAliasesRequest(\"\")方式:testadb_test 是否 存在:" + existsAlias4);

    GetAliasesRequest getAliasesRequest5 = new GetAliasesRequest(new String[]{"testadb"});
    boolean existsAlias5 = restHighLevelClient.indices()
        .existsAlias(getAliasesRequest5, RequestOptions.DEFAULT);
    System.out.println(
        ":new GetAliasesRequest(new String[]{\"testadb\"});方式:testadb 是否 存在:" + existsAlias5);

    GetAliasesRequest getAliasesRequest6 = new GetAliasesRequest(new String[]{"testadb_test"});
    boolean existsAlias6 = restHighLevelClient.indices()
        .existsAlias(getAliasesRequest6, RequestOptions.DEFAULT);
    System.out.println(
        ":new GetAliasesRequest(new String[]{\"testadb_test\"});方式:testadb_test 是否 存在:"
            + existsAlias6);

    return "11111111111111111111111";
  }

  /**
   * @ClassName zhangqiangtest
   * @MethodName getAliases
   * @Description 获取Aliases别名 与上方一样
   * @Author zhangqiang
   * @Date 2020/9/25 17:39
   * @Param []
   * @Return java.lang.String
   **/
  //    http://localhost:8080/testzq/getAliases
  @RequestMapping("/getAliases")
  public String getAliases() throws IOException {
    GetAliasesRequest getAliasesRequest = new GetAliasesRequest();
    getAliasesRequest.aliases("testadb");
    GetAliasesResponse getAliasesResponse = restHighLevelClient.indices()
        .getAlias(getAliasesRequest, RequestOptions.DEFAULT);
    Map<String, Set<AliasMetaData>> getAliasesResponseAliases = getAliasesResponse.getAliases();
    System.out.println(JSON.toJSON(getAliasesResponseAliases));

    return "11111111111111111111111";
  }

  /**
   * @ClassName zhangqiangtest
   * @MethodName maxresultwindow
   * @Description 更新maxresultwindow
   * @Author zhangqiang
   * @Date 2020/9/26 11:22
   * @Param []
   * @Return java.lang.String
   **/
  //    http://localhost:8080/testzq/maxresultwindow
  @RequestMapping("/maxresultwindow")
  public String maxresultwindow() throws IOException {

    UpdateSettingsRequest updateSettingsRequest = new UpdateSettingsRequest("zqtest7");
    updateSettingsRequest.settings(Settings.builder().put("index.max_result_window", "2000000000"));
    restHighLevelClient.indices().putSettings(updateSettingsRequest, RequestOptions.DEFAULT);
    return "11111111111111111111111";
  }

  /**
   * @ClassName zhangqiangtest
   * @MethodName updateindicesSetting
   * @Description 更新索引的数据配置setting
   * @Author zhangqiang
   * @Date 2020/9/26 15:52
   * @Param []
   * @Return java.lang.String
   **/
  //    http://localhost:8080/testzq/updateindicesSetting
  @RequestMapping("/updateindicesSetting")
  public String updateindicesSetting() throws IOException {

    //更新所有的索引setting
    UpdateSettingsRequest updateSettingsRequest1 = new UpdateSettingsRequest();
    UpdateSettingsRequest updateSettingsRequest2 = new UpdateSettingsRequest("field", "field1");

    //更新一个或者是2个多个
    UpdateSettingsRequest updateSettingsRequest = new UpdateSettingsRequest("field");
    updateSettingsRequest.settings(Settings.builder().put("index.max_result_window", "2000000000"));
    restHighLevelClient.indices().putSettings(updateSettingsRequest, RequestOptions.DEFAULT);
    return "11111111111111111111111";
  }

  /**
   * @ClassName zhangqiangtest
   * @MethodName getSettingrequest
   * @Description 获取Setting 配置
   * @Author zhangqiang
   * @Date 2020/9/26 16:04
   * @Param []
   * @Return java.lang.String
   **/
  //    http://localhost:8080/testzq/getSettingrequest
  @RequestMapping("/getSettingrequest")
  public String getSettingrequest() throws IOException {
    GetSettingsRequest getSettingsRequest = new GetSettingsRequest().indices("field");
    getSettingsRequest.names("index.number_of_shards");

    GetSettingsResponse settings = restHighLevelClient.indices()
        .getSettings(getSettingsRequest, RequestOptions.DEFAULT);
    System.out.println(JSON.toJSON(settings));
    String field = settings.getSetting("field", "index.number_of_shards");
    System.out.println(JSON.toJSON(field));
    Settings field1 = settings.getIndexToSettings().get("field");
    Integer asInt = field1.getAsInt("index.number_of_shards", null);
    System.out.println(asInt);
    String field2 = settings.getSetting("field", "index.refresh_interval");
    Settings field3 = settings.getIndexToDefaultSettings().get("field");
    System.out.println(field2);
    System.out.println(field3);
    return "11111111111111111111111";
  }


  /**
   * @ClassName zhangqiangtest
   * @MethodName puttemplate
   * @Description 放置模板
   * @Author zhangqiang
   * @Date 2020/9/26 16:27
   * @Param []
   * @Return java.lang.String
   **/
  //    http://localhost:8080/testzq/puttemplate
  @RequestMapping("/puttemplate")
  public String puttemplate() throws IOException {

    PutIndexTemplateRequest putIndexTemplateRequest = new PutIndexTemplateRequest("my-template");
    putIndexTemplateRequest.patterns(Arrays.asList("pattern-1", "log-*"));

    //分片数 副本数
    putIndexTemplateRequest.settings(Settings.builder().put("index.number_of_shards", 3)
        .put("index.number_of_replicas", 1));

       /* putIndexTemplateRequest.mapping(
                "{\n" +
                        "{ \"properties\": {\n" +
                        "  \"message\": {\n" +
                        " \"type\":\"text\" \n" +
                        "}\n" +
                        "}\n" +
                        "}",
                XContentType.JSON);*/

        /*HashMap<String, Object> jsonMap = new HashMap<>();
        {
            HashMap<String, Object> properties = new HashMap<>();
            {
                HashMap<String, Object> message = new HashMap<>();
                message.put("type", "text");
                properties.put("message", message);
            }
            jsonMap.put("properties", properties);
        }
        putIndexTemplateRequest.mapping(jsonMap);*/

    XContentBuilder xContentBuilder = XContentFactory.jsonBuilder();
    xContentBuilder.startObject();
    {
      xContentBuilder.startObject("properties");
      {
        xContentBuilder.startObject("message");
        {
          xContentBuilder.field("type", "text");
        }
        xContentBuilder.endObject();
      }
      xContentBuilder.endObject();
    }
    xContentBuilder.endObject();
    putIndexTemplateRequest.mapping(xContentBuilder);

    AcknowledgedResponse acknowledgedResponse = restHighLevelClient.indices()
        .putTemplate(putIndexTemplateRequest, RequestOptions.DEFAULT);
    System.out.println(acknowledgedResponse.isAcknowledged());

    return "11111111111111111111111";
  }

  /**
   * @ClassName zhangqiangtest
   * @MethodName ValidateQueryRequest
   * @Description 验证查询
   * @Author zhangqiang
   * @Date 2020/9/26 16:29
   * @Param []
   * @Return java.lang.String
   **/
  //    http://localhost:8080/testzq/ValidateQueryRequest
  @RequestMapping("/ValidateQueryRequest")
  public String ValidateQueryRequest() throws IOException {
    ValidateQueryRequest validateQueryRequest = new ValidateQueryRequest("field");
    QueryBuilder queryBuilder = QueryBuilders
        .boolQuery()
        .must(QueryBuilders.queryStringQuery("*:*"))
        .filter(QueryBuilders.termQuery("user", "kimchy"));
    validateQueryRequest.query(queryBuilder);
    validateQueryRequest.explain(true);
    validateQueryRequest.allShards(true);
    validateQueryRequest.rewrite(true);
    ValidateQueryResponse validateQueryResponse = restHighLevelClient.indices()
        .validateQuery(validateQueryRequest, RequestOptions.DEFAULT);
    System.out.println(JSON.toJSON(validateQueryResponse));
    boolean valid = validateQueryResponse.isValid();
    int totalShards = validateQueryResponse.getTotalShards();
    int successfulShards = validateQueryResponse.getSuccessfulShards();
    int failedShards = validateQueryResponse.getFailedShards();
    System.out.println("valid:" + valid);
    System.out.println("totalShards:" + totalShards);
    System.out.println("successfulShards:" + successfulShards);
    System.out.println("failedShards:" + failedShards);
    if (failedShards > 0) {
      for (DefaultShardOperationFailedException failure : validateQueryResponse
          .getShardFailures()) {
        String index = failure.index();
        int shardId = failure.shardId();
        String reason = failure.reason();
        System.out.println("***********************");
        System.out.println("failure:" + index);
        System.out.println("failure:" + shardId);
        System.out.println("failure:" + reason);
        System.out.println("***********************");
      }
    }
    for (QueryExplanation queryExplanation : validateQueryResponse.getQueryExplanation()) {
      String index = queryExplanation.getIndex();
      int shard = queryExplanation.getShard();
      System.out.println("======================");
      String explanation = queryExplanation.getExplanation();
      System.out.println("queryExplanation:" + index);
      System.out.println("queryExplanation:" + shard);
      System.out.println("queryExplanation:" + explanation);
      System.out.println("======================");
    }
    return "11111111111111111111111";
  }


  /**
   * @ClassName zhangqiangtest
   * @MethodName GetIndexTemplateRequest
   * @Description 获取索引模板
   * @Author zhangqiang
   * @Date 2020/9/26 16:53
   * @Param []
   * @Return java.lang.String
   **/
  //    http://localhost:8080/testzq/GetIndexTemplateRequest
  @RequestMapping("/GetIndexTemplateRequest")
  public String GetIndexTemplateRequest() throws IOException {
    GetIndexTemplatesRequest getIndexTemplatesRequest = new GetIndexTemplatesRequest("my-template");
    getIndexTemplatesRequest.setMasterNodeTimeout(TimeValue.timeValueMinutes(2));
    GetIndexTemplatesResponse indexTemplate = restHighLevelClient.indices()
        .getIndexTemplate(getIndexTemplatesRequest, RequestOptions.DEFAULT);
    System.out.println(indexTemplate.getIndexTemplates());
    System.out.println(JSON.toJSON(indexTemplate.getIndexTemplates()));
    List<IndexTemplateMetaData> indexTemplates = indexTemplate.getIndexTemplates();
    for (IndexTemplateMetaData da : indexTemplates) {
      System.out.println(da.name());
      System.out.println(da.aliases());
      MappingMetaData mappings = da.mappings();
      Map<String, Object> sourceAsMap = mappings.getSourceAsMap();
      System.out.println(JSON.toJSON(sourceAsMap));
    }
    return "11111111111111111111111";
  }

  /**
   * @ClassName zhangqiangtest
   * @MethodName IndexTemplateExistRequest
   * @Description 索引模板是否存在
   * @Author zhangqiang
   * @Date 2020/9/26 16:58
   * @Param []
   * @Return java.lang.String
   **/
  //    http://localhost:8080/testzq/IndexTemplateExistRequest
  @RequestMapping("/IndexTemplateExistRequest")
  public String IndexTemplateExistRequest() throws IOException {
//        IndexTemplatesExistRequest indexTemplatesExistRequest = new IndexTemplatesExistRequest("my-template");
    IndexTemplatesExistRequest indexTemplatesExistRequest = new IndexTemplatesExistRequest(
        "my-template1");
    indexTemplatesExistRequest.setLocal(true);
    indexTemplatesExistRequest.setMasterNodeTimeout(TimeValue.timeValueMinutes(5));
    boolean b = restHighLevelClient.indices()
        .existsTemplate(indexTemplatesExistRequest, RequestOptions.DEFAULT);
    System.out.println(b);
    return "11111111111111111111111";
  }

  /**
   * @ClassName zhangqiangtest
   * @MethodName GetIndexRequest
   * @Description 获取索引信息
   * @Author zhangqiang
   * @Date 2020/9/26 17:16
   * @Param []
   * @Return java.lang.String
   **/
  //    http://localhost:8080/testzq/GetIndexRequest
  @RequestMapping("/GetIndexRequest")
  public String GetIndexRequest() throws IOException {
    GetIndexRequest getIndexRequest = new GetIndexRequest("field");
    GetIndexResponse getIndexResponse = restHighLevelClient.indices()
        .get(getIndexRequest, RequestOptions.DEFAULT);
//        System.out.println("getIndexResponse:"+JSON.toJSON(getIndexResponse));
    MappingMetaData mappingMetaData = getIndexResponse.getMappings().get("field");
    Map<String, Object> sourceAsMap = mappingMetaData.getSourceAsMap();
    System.out.println("sourceAsMap:" + JSON.toJSON(sourceAsMap));
    List<AliasMetaData> field = getIndexResponse.getAliases().get("field");
    System.out.println("field:" + JSON.toJSON(field));
    String field1 = getIndexResponse.getSetting("field", "index.number_of_shards");
    System.out.println("field1:" + JSON.toJSON(field1));
    Settings field2 = getIndexResponse.getSettings().get("field");
    Integer asInt = field2.getAsInt("index.number_of_shards", null);
    System.out.println("asInt:" + asInt);
       /* TimeValue field3 = getIndexResponse.getDefaultSettings().get("field").getAsTime("index.refresh_interval", null);
        System.out.println("field3"+field3);*/

    return "11111111111111111111111";
  }

  /**
   * @ClassName zhangqiangtest
   * @MethodName freezeindex
   * @Description 冻结索引
   * @Author zhangqiang
   * @Date 2020/9/26 17:17
   * @Param []
   * @Return java.lang.String
   **/
  //    http://localhost:8080/testzq/freezeindex
  @RequestMapping("/freezeindex")
  public String freezeindex() throws IOException {

    FreezeIndexRequest field = new FreezeIndexRequest("field");
    ShardsAcknowledgedResponse freeze = restHighLevelClient.indices()
        .freeze(field, RequestOptions.DEFAULT);
    System.out.println(freeze);

    return "11111111111111111111111";
  }

  /**
   * @ClassName zhangqiangtest
   * @MethodName unfreezeindex
   * @Description 取消冻结索引
   * @Author zhangqiang
   * @Date 2020/9/26 17:18
   * @Param []
   * @Return java.lang.String
   **/
  //    http://localhost:8080/testzq/unfreezeindex
  @RequestMapping("/unfreezeindex")
  public String unfreezeindex() throws IOException {

    UnfreezeIndexRequest field = new UnfreezeIndexRequest("field");
    ShardsAcknowledgedResponse unfreeze = restHighLevelClient.indices()
        .unfreeze(field, RequestOptions.DEFAULT);
    System.out.println(unfreeze);

    return "11111111111111111111111";
  }

  /**
   * @ClassName zhangqiangtest
   * @MethodName deleteTemplaterequest
   * @Description 删除索引模板
   * @Author zhangqiang
   * @Date 2020/9/26 17:30
   * @Param []
   * @Return java.lang.String
   **/
  //    http://localhost:8080/testzq/deleteTemplaterequest
  @RequestMapping("/deleteTemplaterequest")
  public String deleteTemplaterequest() throws IOException {
    DeleteIndexTemplateRequest deleteIndexTemplateRequest = new DeleteIndexTemplateRequest(
        "my-template1");
    AcknowledgedResponse acknowledgedResponse = restHighLevelClient.indices()
        .deleteTemplate(deleteIndexTemplateRequest, RequestOptions.DEFAULT);
    System.out.println(acknowledgedResponse);
    return "11111111111111111111111";
  }
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值