簡體   English   中英

如何實現 Spring 數據 Elasticsearch 8.4 和存儲庫?

[英]How to implements Spring Data Elasticsearch 8.4 and repositories?

我正在創建新的 Java POC 以測試 Eelasticsearch 8.4 功能。

為此,我在互聯網上找到了一個配置文件:

@Configuration
@EnableElasticsearchRepositories(basePackages = "com.poc.elastic")
@ComponentScan(basePackages = {"com.poc"})
public class ElasticConfig {

    @Bean
    public RestHighLevelClient client() {
        ClientConfiguration clientConfiguration
                = ClientConfiguration.builder()
                .connectedTo("localhost:9200")
                .build();

        return RestClients.create(clientConfiguration).rest();
    }

    @Bean
    public ElasticsearchOperations elasticsearchTemplate() {
        return new ElasticsearchRestTemplate(client());
    }
}

我還創建了一個存儲庫 class:

public interface ItemRepository extends ElasticsearchRepository<Item, String> {}

現在,我只想創建一個高質量的代碼,不再使用RestHighLevelClient ,因為它已被棄用。

我讀過有一個新的實現,但我不知道如何從新的ElasticsearchClient ElasticsearchOperations @EnableElasticsearchRepositories 默認使用 elasticsearchTemplate)。

@Configuration
@EnableElasticsearchRepositories(basePackages = "com.poc.elastic")
@ComponentScan(basePackages = {"com.poc"})
public class ElasticConfig {
    @Bean
    public RestClient getRestClient() {
        RestClient restClient = RestClient.builder(
                new HttpHost("localhost:9200", 9200)).build();
        return restClient;
    }

    @Bean
    public ElasticsearchTransport getElasticsearchTransport() {
        return new RestClientTransport(
                getRestClient(), new JacksonJsonpMapper());
    }


    @Bean
    public ElasticsearchClient getElasticsearchClient() {
        ElasticsearchClient client = new ElasticsearchClient(getElasticsearchTransport());
        return client;
    }
}

我正在使用 spring 2.7.3。

任何想法?

新的 Elasticsearch 客戶端可作為可選方式連接到 4.4 版中的 Elasticsearch,這就是 Spring Boot 2.7.3 使用的方式。 查看Spring 數據 Elasticsearch 文檔以了解如何集成此新客戶端。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM