0
点赞
收藏
分享

微信扫一扫

elasticsearch java 客户端(client)连接es集群方式(官方详细文档,实测有效)

小a草 2022-04-01 阅读 95
java后端

elasticsearch java 客户端api示例

参考官方文档,使用elasticsearch java客户端对es进行操作。

elasticsearch maven依赖

    <properties>
        <es.version>7.6.2</es.version>
        <gson.version>2.8.6</gson.version>
    </properties>
    
     <!-- json start-->
        <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>${gson.version}</version>
        </dependency>
        <!--json end-->

        <!--elasticsearch start-->
        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>transport</artifactId>
            <version>${es.version}</version>
        </dependency>
        <!--elasticsearch end-->

elasticsearch java 客户端(client)连接elasticsearch集群并写入数据

package com.troll.bigdata.component.example.elasticsearch.example;

import com.google.gson.Gson;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.TransportAddress;
import org.elasticsearch.common.xcontent.XContentType;
import org.elasticsearch.transport.client.PreBuiltTransportClient;

import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

public class ConnectES {
    public static void main(String[] args) {

        /**
         * 官方参考链接
         * https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/transport-client.html
         */
        // 读取ES配置
        String host = "localhost";
        int port = 8300;

        // 打印es连接信息
        System.out.println("host:" + host + ",port:" + port);

//        // 获取settings
        Settings settings = Settings.builder()
                .put("client.transport.sniff", false)
                .put("cluster.name", "troll_es_dev").build();

        // 客户端对象
        TransportClient client = null;

        // 建立ES连接
        try {
            client = new PreBuiltTransportClient(settings)
                    .addTransportAddress(new TransportAddress(InetAddress.getByName(host), port));
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }

        // json拼装
        String json = "{" +
                ""uid":1,"+
                ""user":"kimchy"," +
                ""postDate":"2013-01-30"," +
                ""message":"trying out Elasticsearch"" +
                "}";

        // 执行api
        IndexResponse response = client.prepareIndex("twitter", "_doc","1")
                .setSource(json, XContentType.JSON)
                .get();

        // 提取返回值,放入map,便于查看
        Map<String,Object> rep = new HashMap<String, Object>();
        // Index name
        rep.put("_index",response.getIndex());
        // Type name
        rep.put("_type",response.getType());
        // Document ID (generated or not)
        rep.put("_id",response.getId());
        // Version
        rep.put("_version",response.getVersion());
        // status has stored current instance statement.
        rep.put("status",response.status().getStatus());

        // 打印返回值,转json是为了方便查看
        Gson gson = new Gson();
        System.out.println(gson.toJson(rep));

        // 释放客户端
        client.close();

    }
}

执行效果:

host:localhost,port:8300
{"_index":"twitter-new","_type":"_doc","_id":"1","_version":5,"status":200}

** 查看elasticsearch java客户端插入的数据 **

# 查看索引数据
GET /twitter/_doc/1

执行效果如下:

从反馈结果看,数据已插入ES。

参考

  • elasticsearch java api client官方文档
举报

相关推荐

0 条评论