玩转Elasticsearch—Spring Data整合ES7.16.3

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 玩转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());
        }
    }
}


相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
2月前
|
存储 Java API
如何使用 Java 记录简化 Spring Data 中的数据实体
如何使用 Java 记录简化 Spring Data 中的数据实体
41 9
|
3月前
|
Java 数据库连接 API
【Java笔记+踩坑】Spring Data JPA
从常用注解、实体类和各层编写方法入手,详细介绍JPA框架在增删改查等方面的基本用法,以及填充用户名日期、分页查询等高级用法。
【Java笔记+踩坑】Spring Data JPA
|
4月前
|
Java Spring 数据库
怎样动动手指就能实现数据操作?Spring Data JPA背后的魔法揭秘
【8月更文挑战第31天】在Java开发中,数据库交互至关重要。传统的JDBC操作繁琐且难维护,而Spring Data JPA作为集成JPA的数据访问层解决方案,提供了CRUD等通用操作接口,显著减少代码量。通过继承`JpaRepository`,开发者能轻松实现数据的增删改查,甚至复杂查询和分页也不再困难。本文将通过示例详细介绍如何利用Spring Data JPA简化数据访问层的开发,提升代码质量和可维护性。
48 0
|
5月前
|
NoSQL Java API
Spring Data MongoDB 使用
Spring Data MongoDB 使用
268 1
|
4月前
|
存储 Java 数据库
|
4月前
|
存储 Java API
|
4月前
|
Java 数据库连接 数据库
Spring Data JPA 与 Hibernate 之区别
【8月更文挑战第21天】
101 0
|
缓存 Java Go
解决Spring Data JPA查询存在缓存问题及解决方案
解决Spring Data JPA查询存在缓存问题及解决方案
706 0
|
7月前
|
XML Java 数据库连接
Spring Boot的数据访问之Spring Data JPA以及Hibernate的实战(超详细 附源码)
Spring Boot的数据访问之Spring Data JPA以及Hibernate的实战(超详细 附源码)
150 0
|
7月前
|
Java Spring
Spring Boot利用Spring Data JPA实现排序与分页查询实战(附源码,超详细)
Spring Boot利用Spring Data JPA实现排序与分页查询实战(附源码,超详细)
244 0