使用 elasticsearchoperations 与 elasticsearchtemplate 有什么区别?
using elasticsearchoperations vs elasticsearchtemplate whats the difference?
我想弄清楚为什么必须将我的 bean 名称设置为 elasticsearchTemplate
。没有它,我的应用程序就会崩溃。我有下面的代码来配置我的 Rest 客户端。问题是如果我不添加 elasticsearchTemplate
作为 bean 名称,它会失败并说找不到 elasticsearchTemplate
。关于为什么这样做的任何想法以及使用 elasticsearchoperations
与 elasticsearchtemplate
有什么区别?
Using Spring-Data-Elasticsearch Version 3.2
Using Java High-Level Rest Client Version 6.8.0
有效
@Bean("elasticsearchtemplate")
public ElasticsearchOperations elasticsearchTemplate() throws Exception {
return new ElasticsearchTemplate(client());
}
不起作用
public ElasticsearchOperations elasticsearchTemplate() throws Exception {
return new ElasticsearchTemplate(client());
}
可能是因为启动配置(application.properties)缺少elasticsearch相关的配置。
您需要在 application.properties
文件中定义一些弹性搜索属性,例如 ElasticsearchTemplate 使用的 cluster-nodes、cluster-names和 ElasticsearchRepository 连接到 Elasticsearch 引擎。
作为 follows
- 您可以通过扩展 AbstractElasticsearchConfiguration 手动配置 rest 客户端。
@Configuration
public class RestClientConfig extends AbstractElasticsearchConfiguration {
@Override
public RestHighLevelClient elasticsearchClient() {
return RestClients.create(ClientConfiguration.localhost()).rest();
}
}
- 使用 elasticsearchoperations 和 elasticsearchtemplate 有什么区别?
The ElasticsearchTemplate is an implementation of the ElasticsearchOperations interface using the Transport Client.
https://docs.spring.io/spring-data/elasticsearch/docs/3.2.0.RELEASE/reference/html/#elasticsearch.operations.resttemplate
我想弄清楚为什么必须将我的 bean 名称设置为 elasticsearchTemplate
。没有它,我的应用程序就会崩溃。我有下面的代码来配置我的 Rest 客户端。问题是如果我不添加 elasticsearchTemplate
作为 bean 名称,它会失败并说找不到 elasticsearchTemplate
。关于为什么这样做的任何想法以及使用 elasticsearchoperations
与 elasticsearchtemplate
有什么区别?
Using Spring-Data-Elasticsearch Version 3.2
Using Java High-Level Rest Client Version 6.8.0
有效
@Bean("elasticsearchtemplate")
public ElasticsearchOperations elasticsearchTemplate() throws Exception {
return new ElasticsearchTemplate(client());
}
不起作用
public ElasticsearchOperations elasticsearchTemplate() throws Exception {
return new ElasticsearchTemplate(client());
}
可能是因为启动配置(application.properties)缺少elasticsearch相关的配置。
您需要在 application.properties
文件中定义一些弹性搜索属性,例如 ElasticsearchTemplate 使用的 cluster-nodes、cluster-names和 ElasticsearchRepository 连接到 Elasticsearch 引擎。
作为 follows
- 您可以通过扩展 AbstractElasticsearchConfiguration 手动配置 rest 客户端。
@Configuration
public class RestClientConfig extends AbstractElasticsearchConfiguration {
@Override
public RestHighLevelClient elasticsearchClient() {
return RestClients.create(ClientConfiguration.localhost()).rest();
}
}
- 使用 elasticsearchoperations 和 elasticsearchtemplate 有什么区别?
The ElasticsearchTemplate is an implementation of the ElasticsearchOperations interface using the Transport Client.
https://docs.spring.io/spring-data/elasticsearch/docs/3.2.0.RELEASE/reference/html/#elasticsearch.operations.resttemplate