ETJava Beta | Java    注册   登录
  • elasticsearch Java接口连接集群

    发表于 2024-04-08 11:35:25     阅读(189)     博客类别:Elasticsearch

    elasticsearch Java接口连接集群

    java 中连接集群 只需要修改new PreBuiltTransportClient(settings.build())参数即可
    
    具体代码如下

    案例

     

    package com.et.connection;
    
    import com.google.gson.JsonObject;
    import org.elasticsearch.action.get.GetResponse;
    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;
    
    /**
     * @Author: ETJAVA
     * @CreateTime: 2024-04-08  15:33
     * @Description: TODO 测试集群连接
     * @Version: 1.0
     */
    public class TestCluster {
    
        private static String host="192.168.199.126";// 主节点IP
        private static int port=9300; // 程序连接的端口
        private static String CLUSTER_NAME="my-application";// 集群名称 在elasticsearch.yml中配置的
        // 配置settings
        private static Settings.Builder settings = Settings.builder().put("cluster.name",CLUSTER_NAME);
    
        public static void main(String[] args) throws UnknownHostException {
            TransportClient client = new PreBuiltTransportClient(settings.build())
                    .addTransportAddress(new TransportAddress(InetAddress.getByName(host), port));
    
            // 定义要添加的数据
            // 定义要添加的数据
            JsonObject jsonObject = new JsonObject();
            jsonObject.addProperty("name","Java");
            jsonObject.addProperty("publishDate","2001-01-01");
            jsonObject.addProperty("price",99.98);
    
            // 添加索引 如果不指定ID 会自动生成一个字符串的ID
            IndexResponse indexResponse = client.prepareIndex("book", "java", "1") // 定义索引的位置和id
                    .setSource(jsonObject.toString(), XContentType.JSON) // 添加值
                    .get();// 获取返回值
            System.out.println("索引名称:"+indexResponse.getIndex());
            System.out.println("文档类型:"+indexResponse.getType());
            System.out.println("文档ID:"+indexResponse.getId());
            System.out.println("当前实例的状态:"+indexResponse.status());
    
            // 查询索引
            GetResponse getResponse = client.prepareGet("book", "java", "1").get();
            System.out.println(getResponse.getSourceAsString());// 返回json格式数据
        }
    }