3.3 Spring Boot下的自动配置
Spring Boot提供的Elasticearch的自动配置主要包括:
RestClientAutoConfiguration
:使用RestClientProperties
通过spring.elasticsearch.rest.*
来自动配置Elasticsearch REST客户端。- 类路径中依赖
org.elasticsearch.client:elasticsearch-rest-client
,会自动配置RestClient
; - 类路径中的依赖
org.elasticsearch.client:elasticsearch-rest-high-level-client
,会自动配置RestHighLevelClient
,它包装了已有的RestCient
的Bean,复用HTTP配置。
- 类路径中依赖
ElasticsearchRepositoriesAutoConfiguration
:自动通过@EnableElasticsearchRepositories
开启Spring Data Elasticsearch Repository的支持。
Elasticsearch Jest客户端支持已弃用;
Elasticsearch TransportClient在 Elasticsearch 7.0.0版本弃用,将在Elasticsearch 8.0版本移除。
通过Rest客户端连接Elasticsearch
spring:
elasticsearch:
rest:
uris: http://localhost:9200
3.4 定义聚合
Spring Data为我们提供了下面的注解来定义聚合(聚合概念参考https://blog.csdn.net/wiselyman/article/details/106227455):
@Document
:注解在聚合根上,将此类与Elasticsearch的index映射,可设置index名称喝index类型。@Id
:聚合根的唯一标识,注解在String
类型的id
上,Elasticsearch会自动生成唯一标识。@Field
:表示当前的属性是值或者值对象,可设置与Elasticsearch的Field
相关的设置,如映射的名称,可省略。@Transient
:注解的属性将不会持久化到Elasticsearch
那我们的聚合根定义为:
@Data
@AllArgsConstructor
@NoArgsConstructor
@Document(indexName = "person")
public class Person {
@Id
private String id;
private String name;
private Integer age;
private Address address;
Collection<Child> children;
public