玩转Elasticsearch—Spring Data整合ES7.16.3

简介: 玩转Elasticsearch—Spring Data整合ES7.16.3

5.1 pom依赖

新建spring boot项目:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--  依赖web starter-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>
复制代码

5.2 配置

配置文件:

es:
  address: 127.0.0.1
  port: 9200
复制代码

配置类:

@Configuration
public class ElasticsearchConfig extends AbstractElasticsearchConfiguration {
    @Value("${es.address}")
    private String address;
    @Value("${es.port}")
    private Integer port;
    @Override
    @Bean
    public RestHighLevelClient elasticsearchClient() {
        final String ES_URL = address + ":" + port;
        final ClientConfiguration clientConfiguration = ClientConfiguration.builder()
                .connectedTo(ES_URL)
                .build();
        return RestClients.create(clientConfiguration).rest();
    }
}
复制代码

5.3 编码测试

@SpringBootTest
class SpEsApplicationTests {
    @Autowired
    private ElasticsearchOperations elasticsearchOperations;
    @Test
    void save() {
        Student student = new Student(3L, "ww", 13, "上海");
        IndexQuery indexQuery = new IndexQueryBuilder()
                .withId(student.getId().toString())
                .withObject(student)
                .build();
        String str = elasticsearchOperations.index(indexQuery,
                IndexCoordinates.of("student"));
        System.out.println(str);
    }
    @Test
    void findById() {
        Student student = elasticsearchOperations.get("1", Student.class, IndexCoordinates.of("student"));
        System.out.println(student);
    }
    @Test
    void findAll() {
        SearchHits<Student> search = elasticsearchOperations.search(Query.findAll(), Student.class, IndexCoordinates.of("student"));
        for (SearchHit<Student> hit : search) {
            System.out.println(hit.getContent());
        }
    }
    @Test
    void findBySome(){
        Criteria criteria = new Criteria("name").is("zs");
        Query query = new CriteriaQuery(criteria);
        SearchHits<Student> search = elasticsearchOperations.search(query, Student.class, IndexCoordinates.of("student"));
        for (SearchHit<Student> hit : search) {
            System.out.println(hit.getContent());
        }
    }
    @Test
    void findBySome2(){
        Criteria contains = new Criteria("name").contains("s");
        Query query = new CriteriaQuery(contains);
        SearchHits<Student> search = elasticsearchOperations.search(query, Student.class, IndexCoordinates.of("student"));
        for (SearchHit<Student> hit : search) {
            System.out.println(hit.getContent());
        }
    }
}


相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。 &nbsp;
相关文章
|
3月前
|
NoSQL Java 数据库连接
《深入理解Spring》Spring Data——数据访问的统一抽象与极致简化
Spring Data通过Repository抽象和方法名派生查询,简化数据访问层开发,告别冗余CRUD代码。支持JPA、MongoDB、Redis等多种存储,统一编程模型,提升开发效率与架构灵活性,是Java开发者必备利器。(238字)
|
3月前
|
存储 Java 关系型数据库
Spring Boot中Spring Data JPA的常用注解
Spring Data JPA通过注解简化数据库操作,实现实体与表的映射。常用注解包括:`@Entity`、`@Table`定义表结构;`@Id`、`@GeneratedValue`配置主键策略;`@Column`、`@Transient`控制字段映射;`@OneToOne`、`@OneToMany`等处理关联关系;`@Enumerated`、`@NamedQuery`支持枚举与命名查询。合理使用可提升开发效率与代码可维护性。(238字)
362 1
存储 JSON Java
582 0
|
4月前
|
SQL Java 数据库连接
Spring Data JPA 技术深度解析与应用指南
本文档全面介绍 Spring Data JPA 的核心概念、技术原理和实际应用。作为 Spring 生态系统中数据访问层的关键组件,Spring Data JPA 极大简化了 Java 持久层开发。本文将深入探讨其架构设计、核心接口、查询派生机制、事务管理以及与 Spring 框架的集成方式,并通过实际示例展示如何高效地使用这一技术。本文档约1500字,适合有一定 Spring 和 JPA 基础的开发者阅读。
460 0
|
6月前
|
NoSQL Java Redis
Redis基本数据类型及Spring Data Redis应用
Redis 是开源高性能键值对数据库,支持 String、Hash、List、Set、Sorted Set 等数据结构,适用于缓存、消息队列、排行榜等场景。具备高性能、原子操作及丰富功能,是分布式系统核心组件。
606 2
|
Java Spring
解决Springboot集成ElasticSearch 报错:A bean with that name has already been defined in null and overriding
解决Springboot集成ElasticSearch 报错:A bean with that name has already been defined in null and overriding
498 2
|
搜索推荐 Java 数据库
springboot集成ElasticSearch的具体操作(系统全文检索)
springboot集成ElasticSearch的具体操作(系统全文检索)
|
Java 测试技术 Maven
SpringBoot集成Elasticsearch
SpringBoot集成Elasticsearch
395 0
|
Java Windows
【极光系列】springBoot集成elasticsearch
【极光系列】springBoot集成elasticsearch
365 2
|
Java
【极问系列】springBoot集成elasticsearch出现Unable to parse response body for Response
【极问系列】springBoot集成elasticsearch出现Unable to parse response body for Response
1577 2