0

Bean 名を に設定する必要がある理由を理解しようとしていelasticsearchTemplateます。これがないと、アプリケーションがクラッシュします。Rest クライアントを構成するための以下のコードがあります。問題は、Bean 名として を追加しないelasticsearchTemplateと失敗し、 が見つからないと表示されることelasticsearchTemplateです。なぜこれを行うのか、またelasticsearchoperationsvsを使用することの違いは何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());
}
4

2 に答える 2

0
  1. AbstractElasticsearchConfiguration を拡張することで、残りのクライアントを手動で構成できます。
@Configuration
public class RestClientConfig extends AbstractElasticsearchConfiguration {
  @Override
  public RestHighLevelClient elasticsearchClient() {       
    return RestClients.create(ClientConfiguration.localhost()).rest();
  }
}
  1. Elasticsearchoperationsとelasticsearchtemplateの使用の違いは何ですか?

ElasticsearchTemplate は、Transport Client を使用した ElasticsearchOperations インターフェースの実装です。
https://docs.spring.io/spring-data/elasticsearch/docs/3.2.0.RELEASE/reference/html/#elasticsearch.operations.resttemplate

于 2020-06-23T03:44:02.817 に答える