package cn.hadron;
import java.net.InetAddress;
import java.net.UnknownHostException;
import org.elasticsearch.action.get.GetResponse;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.TransportAddress;
import org.elasticsearch.transport.client.PreBuiltTransportClient;
/**
* 官方参考文档
* https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/transport-client.html
*/
public class ClientDemo {
public static void main(String[] args) throws UnknownHostException {
// 设置集群名称
Settings settings = Settings.builder().put("cluster.name", "elasticsearch").build();
// 创建client
TransportClient client = new PreBuiltTransportClient(settings)
.addTransportAddress(new TransportAddress(InetAddress.getByName("node1"), 9300));
// 搜索数据
GetResponse response = client.prepareGet("website", "blog", "1").execute().actionGet();
// 输出结果
System.out.println(response.getSourceAsString());
// 关闭client
client.close();
}
}
https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/transport-client.html
参数 | 说明 |
---|---|
client.transport.ignore_cluster_name | Set to true to ignore cluster name validation of connected nodes. (since 0.19.4) |
client.transport.ping_timeout | The time to wait for a ping response from a node. Defaults to 5s. |
client.transport.nodes_sampler_interval | How often to sample / ping the nodes listed and connected. Defaults to 5s. |
We plan on deprecating the TransportClient in Elasticsearch 7.0 and removing it completely in 8.0. Instead, you should be using the Java High Level REST Client, which executes HTTP requests rather than serialized Java requests. The migration guide describes all the steps needed to migrate. 我们计划在Elasticsearch 7.0中弃用TransportClient并在8.0中完全删除它。 相反,您应该使用Java高级别REST客户端,它执行HTTP请求而不是序列化的Java请求。 迁移指南介绍了迁移所需的所有步骤。