美文网首页
java中使用es入门

java中使用es入门

作者: f22448cd5541 | 来源:发表于2019-02-13 14:19 被阅读0次

java中使用es

es的java驱动包,在不同的版本中会有不同的兼容性问题,所以在使用时一定要注意依赖的版本,这里笔者采用的是官网最新的6.2.3版本。

依赖

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>transport</artifactId>
    <version>6.2.3</version>
</dependency>
<dependency>
    <groupId>org.elasticsearch</groupId>
    <artifactId>elasticsearch</artifactId>
    <version>6.2.3</version>
</dependency>

Demo例子

  • 创建TransportClient类:

    # 这里默认配置一个es的集群名字
    Settings settings = Settings.builder()
                    .put("cluster.name", "my-application").build();
    
    TransportClient client = new PreBuiltTransportClient(settings)
            .addTransportAddress(new TransportAddress(InetAddress.getByName("127.0.0.1"), 9301))
            .addTransportAddress(new TransportAddress(InetAddress.getByName("127.0.0.1"), 9300));
    
    
  • 在索引下插入数据

    Map data = new HashMap<>();
    data.put("test", "test log");
    data.put("time", System.currentTimeMillis());
    
    IndexResponse response = client.prepareIndex("test", "log", UUID.randomUUID().toString()).setSource(data).get();
    
    System.out.println("id: "+response.getId());
    
  • 批量插入数据

    public void batchInsert(List<JSONObject> list) {
    
        if (list.size() > 0) {
            BulkRequestBuilder prepareBulk = client.prepareBulk();
            for (JSONObject jsonObject : list) {
                prepareBulk.add(client.prepareIndex(INDEX, TYPE, UUID.randomUUID().toString()).setSource(jsonObject));
            }
            BulkResponse bulkResponse = prepareBulk.get();
            RestStatus status = bulkResponse.status();
            if (status.getStatus() == 200) {
                logger.warn("[add] - batch add log fail, statue: {}, data: {}", status, JSON.toJSON(list).toString());
            }
        }
    }
    

相关文章

网友评论

      本文标题:java中使用es入门

      本文链接:https://www.haomeiwen.com/subject/okqdeqtx.html