原标题:Spring认证中国教育管理中心-Spring Data Elasticsearch教程一(Spring中国教育管理中心)
5.1传输客户端
将TransportClient被弃用Elasticsearch 7的,并会在Elasticsearch 8被移除(见Elasticsearch文档)。Spring Data Elasticsearch 将支持它TransportClient,只要它在使用的 Elasticsearch版本中可用,但自 4.0 版以来已弃用使用它的类。
我们强烈建议使用高级 REST 客户端而不是TransportClient.
示例 52. 传输客户端
@Configuration
public class TransportClientConfig extends ElasticsearchConfigurationSupport {
@Bean
public Client elasticsearchClient() throws UnknownHostException {
Settings settings = Settings.builder().put("cluster.name", "elasticsearch").build();
TransportClient client = new PreBuiltTransportClient(settings);
client.addTransportAddress(new TransportAddress(InetAddress.getByName("127.0.0.1"), 9300));
return client;
}
@Bean(name = { "elasticsearchOperations", "elasticsearchTemplate" })
public ElasticsearchTemplate elasticsearchTemplate() throws UnknownHostException {
ElasticsearchTemplate template = new ElasticsearchTemplate(elasticsearchClient, elasticsearchConverter);
template.setRefreshPolicy(refreshPolicy());
return template;
}
}
// ...
IndexRequest request = new IndexRequest("spring-data")
.id(randomID())
.source(someObject);
IndexResponse response = client.index(request);
在TransportClient必须与群集名称进行配置。
连接客户端的主机和端口。
RefreshPolicy 必须设置在ElasticsearchTemplate(覆盖refreshPolicy()不使用默认值)
5.2.高级 REST 客户端
Java High Level REST Client 是 Elasticsearch 的默认客户端,它提供了直接的替代,TransportClient因为它接受并返回完全相同的请求/响应对象,因此依赖于 Elasticsearch 核心项目。异步调用在客户端管理的线程池上进行操作,并且需要在请求完成时通知回调。
示例 53. 高级 REST 客户端
@Configuration
public class RestClientConfig extends AbstractElasticsearchConfiguration {
@Override
@Bean