版本选型

Elasticsearch 8 .14.x 对应依赖Spring Data Elasticsearch 5.3.x,对应Spring6 .1.x,Spring Boot版本可以选择3.3.x

引入依赖

<dependency >

         <groupId >org.springframework.boot</groupId >

        <artifactId >spring-boot-starter -data-elasticsearch </artifactId >

</dependency >

配置ElasticSearch

方式1yml配置

spring
   elasticsearch:
      uris: http://localhost:9200
      connection-timeout: 3s

方式2@Configuration配置

@Configuration
 public class MyESClientConfig extends ElasticsearchConfiguration {

    @Override
    public ClientConfiguration clientConfiguration() {
       return ClientConfiguration .builder().connectedTo ("localhost:9200").build();
    }
 }

Java代码实现

方式1:使用ElasticsearchRepository

ElasticsearchRepository Spring Data Elasticsearch项目中的一个接口,用于简化对Elasticsearch群的CRUD操作以及其他高级搜索功能的集成。这个接口允许开发者通过声明式编程模型来执行数据持久化操作,从而避免直接编写复杂的REST API调用代码。

创建实体类

@Data
@AllArgsConstructor
@NoArgsConstructor
@Document (indexName = "employees")
public class Employee {
    @Id
    private Long id ;
    @Field (type= FieldType.Keyword)
    private String name;
    private int sex;
    private int age;
    @Field (type= FieldType.Text ,analyzer ="ik_max_word")
    private String address ;
    private String remark ;
}

实现ElasticsearchRepository接口

该接口是框架封装的用于操作Elastsearch的高级接口

@Repository
public interface EmployeeRepository extends ElasticsearchRepository <Employee , Long> {
    List<Employee> findByName (String name );
}

官方文档:

https://docs.spring.io/spring-data/elasticsearch/reference/elasticsearch/repositories/elasticsearch-repository-queries.html

方式2:使用ElasticsearchTemplate

ElasticsearchTemplate模板类,封装了便捷操作Elasticsearch的模板方法,包括索引/ 映射/ 文档 CRUD 等底层操作和高级操作。

@Autowired 
ElasticsearchTemplate elasticsearchTemplate;

Java Rest Client 7.15.0 版本开始,Elasticsearch 官方决定将RestHighLevelClient 标记为废弃的,并推荐使用新的Java API Client,即ElasticsearchClient. Spring Data ElasticSearch ElasticsearchClient做了进一步的封装,成了新的客户端ElasticsearchTemplate

方式3:使用ElasticsearchClient

官网文档:https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/8.14/getting-started-java.html

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐