单机es

1:es的9300端口和9200端口的区别
9200作为http协议,主要用于外部通讯
9300作为tcp协议,jar之间通过tcp协议,es集群是通过9300通讯
2:创建http连接
pom

<!-- elasticsearch的客户端 -->
    <dependency>
      <groupId>org.elasticsearch.client</groupId>
      <artifactId>elasticsearch-rest-high-level-client</artifactId>
      <version>6.5.4</version>
    </dependency>
    <dependency>
      <groupId>org.elasticsearch</groupId>
      <artifactId>elasticsearch</artifactId>
      <version>6.5.4</version>
    </dependency>

代码

//        创建HttpHost对象
    HttpHost httpHost = new HttpHost("127.0.0.1",9200);
//      创建RestClientBuilder
    RestClientBuilder builder = RestClient.builder(httpHost);
    //      创建RestHighLevelClien对象
    RestHighLevelClient client = new RestHighLevelClient(builder);

3:创建index

//1、 准备关于索引的settings
    Settings.Builder settings = Settings.builder()
        .put("number_of_shards", 3)
        .put("number_of_replicas", 1);


    //2、 准备关于索引的结构mappings
    XContentBuilder mappings = JsonXContent.contentBuilder()
        .startObject()
        .startObject("properties")
        .startObject("name")
        .field("type","text")
        .endObject()
        .startObject("age")
        .field("type","integer")
        .endObject()
        .startObject("birthday")
        .field("type","date")
        .field("format","yyyy-MM-dd")
        .endObject()
        .endObject()
        .endObject();

    //2 将settings 和 mappings封装成一个request对象
    CreateIndexRequest request = new CreateIndexRequest("biaoming")
        .settings(settings)
        .mapping("leixing",mappings);
    //3   通过client对象去链接es并执行创建索引
    RestHighLevelClient client = getClient();
    CreateIndexResponse response = client.indices().create(request, RequestOptions.DEFAULT);

    //测试
    System.out.println("response"+response.toString());

4:创建实体类

@Data
/**无参构造*/
@NoArgsConstructor
/**有参构造*/
@AllArgsConstructor
public class Persion {
  @JsonIgnore
  private Integer id;

  private String name;

  private Integer age;

  private Date birthDay;
}

5:添加一条数据

//准备json数据
    Persion persion = new Persion(555,"张三555",5555,new Date());
    String json = JSON.toJSONString(persion);
      /**
     * 创建request对象
     * 参数说明:
     *      1、索引名,类似MySql中数据库
     *      2、类型名,类似要操作数据库中那一张表
     *      3、手动指定文档id,不指定id则es自动赋值
     */
    //创建request对象
    // 索引名 类型名
    IndexRequest request = new IndexRequest("biaoming","leixing","11");
    request.source(json, XContentType.JSON);
    //获取连接
    RestHighLevelClient client = getClient();
    IndexResponse index = client.index(request, RequestOptions.DEFAULT);

6:批量添加

//准备json数据
    Persion persion = new Persion(555,"张三555",5555,new Date());
    String json = JSON.toJSONString(persion);
    /**
     * 创建request对象
     * 参数说明:
     *      1、索引名,类似MySql中数据库
     *      2、类型名,类似要操作数据库中那一张表
     *      3、手动指定文档id
     */
    //创建request对象
    // 索引名 类型名
    IndexRequest request = new IndexRequest("biaoming","leixing","11");
    request.source(json, XContentType.JSON);
    IndexRequest request1 = new IndexRequest("biaoming","leixing","12");
    request1.source(json, XContentType.JSON);
    IndexRequest request2 = new IndexRequest("biaoming","leixing","13");
    request2.source(json, XContentType.JSON);
    RestHighLevelClient client = getClient();

    //批量插入
    BulkRequest requestAll = new BulkRequest();
    requestAll.add(request);
    requestAll.add(request1);
    requestAll.add(request2);
    BulkResponse bulk = client.bulk(requestAll);

7:检查索引是否存在

//1 准备request对象
    GetIndexRequest request = new GetIndexRequest();
    request.indices("biaoming");
    // 2 通过client去检查
    RestHighLevelClient client =getClient();
    boolean exists = client.indices().exists(request, RequestOptions.DEFAULT);
    System.out.println(exists);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值