栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Spring-Data-Elasticsearch在后台使用什么Elasticsearch客户端?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring-Data-Elasticsearch在后台使用什么Elasticsearch客户端?

与往常一样,这取决于。

关于Elasticsearch:当前版本为6.7.0,虽然已弃用但TransportClient也将在ES7中可用,但仅在ES8中将被删除,因此有很多时间可以使用它-
尽管您应该考虑替换它。

关于spring-data-elasticsearch:

  • 使用时
    ElasticsearchTemplate
    ,您正在使用TransportClient。
  • 使用时,
    ElasticsearchRestTemplate
    您正在使用RestClient(在3.2.0中可用)。
  • 使用默认值时,
    ElasticsearchRepository
    您正在使用TransportClient。
  • 当使用自定义存储库扩展时(例如
    SimpleElasticsearchRepository
    如下所示),您正在使用RestClient。

示例配置类

@SpringBootApplication@EnableElasticsearchRepositoriespublic class SpringdataElasticTestApplication {    public static void main(String[] args) {        SpringApplication.run(SpringdataElasticTestApplication.class, args);    }    @Bean    RestHighLevelClient elasticsearchClient() {        final ClientConfiguration configuration = ClientConfiguration.localhost();        RestHighLevelClient client = RestClients.create(configuration).rest();        return client;    }    @Bean    ElasticsearchRestTemplate elasticsearchTemplate() {        return new ElasticsearchRestTemplate(elasticsearchClient());    }}

样本存储库类:

public interface PersonRepository extends ElasticsearchRepository<Person, Long> {}

样本POJO类:

@document(indexName = "person")public class Person {    @Id    private Long id;    private String lastName;    private String firstName;    public Long getId() {        return id;    }    public void setId(Long id) {        this.id = id;    }    public String getLastName() {        return lastName;    }    public void setLastName(String lastName) {        this.lastName = lastName;    }    public String getFirstName() {        return firstName;    }    public void setFirstName(String firstName) {        this.firstName = firstName;    }}

因此,在使用3.1.x时,只有具有3.2.x的TransportClient(当前可作为里程碑M2使用),也可以使用RestClient。

确保您的application.yaml(或.properties)不具有任何 spring.data.elasticsearch.cluster- *
属性,因为这些属性将注入ElasticsearchTemplate(传输客户端)。

而且您将需要在pom(摘录)中设置正确的elasticsearch版本和spring-data-elasticsearch版本:

<properties>    <elasticsearch.version>6.6.1</elasticsearch.version></properties>    <dependency>        <groupId>org.springframework.data</groupId>        <artifactId>spring-data-elasticsearch</artifactId>        <!-- need 3.2.0 for REST client-->        <version>3.2.0.M2</version>    </dependency><repository>    <id>Spring-framework-Milestone</id>    <name>Spring framework Milestone</name>    <url>http://maven.springframework.org/milestone/</url></repository>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/435445.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号