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格式数据
}
}
