当前位置: 首页 > article >正文

【SpringBoot中怎么使用ElasticSearch】

springboot中怎么使用ElasticSearch

在Spring Boot中使用ElasticSearch,可以通过集成Spring Data ElasticSearch来实现。以下是一个详细的步骤指南,帮助你设置和使用ElasticSearch与Spring Boot。

1. 添加依赖

首先,在你的Spring Boot项目的pom.xml文件中添加Spring Data ElasticSearch的依赖。

<dependencies>
    <!-- Spring Boot Starter Data ElasticSearch -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
    </dependency>
    
    <!-- 如果使用Java REST High Level Client,可以添加这个依赖 -->
    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>elasticsearch-rest-high-level-client</artifactId>
        <version>7.10.2</version> <!-- 确保版本与你的ElasticSearch服务器匹配 -->
    </dependency>
    
    <!-- 其他依赖 -->
</dependencies>

2. 配置ElasticSearch

application.propertiesapplication.yml中配置ElasticSearch的连接信息。

# application.properties
spring.elasticsearch.rest.uris=http://localhost:9200

或者

# application.yml
spring:
  elasticsearch:
    rest:
      uris: http://localhost:9200

3. 创建实体类

创建一个实体类,并使用Spring Data ElasticSearch的注解来映射ElasticSearch的索引和文档。

import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
 
@Document(indexName = "my-index")
public class MyEntity {
 
    @Id
    private String id;
    private String name;
    private String description;
 
    // Getters and Setters
}

4. 创建Repository接口

创建一个继承自ElasticsearchRepository的接口,用于数据访问。

import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
 
public interface MyEntityRepository extends ElasticsearchRepository<MyEntity, String> {
    // 自定义查询方法可以在这里定义,如果需要的话
}

5. 使用Service和Controller

在Service中注入Repository,并编写业务逻辑。

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import java.util.List;
 
@Service
public class MyEntityService {
 
    @Autowired
    private MyEntityRepository repository;
 
    public List<MyEntity> findAll() {
        return repository.findAll();
    }
 
    public MyEntity save(MyEntity entity) {
        return repository.save(entity);
    }
 
    // 其他业务逻辑
}

在Controller中调用Service,并处理HTTP请求。

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
 
import java.util.List;
 
@RestController
@RequestMapping("/my-entities")
public class MyEntityController {
 
    @Autowired
    private MyEntityService service;
 
    @GetMapping
    public List<MyEntity> getAllEntities() {
        return service.findAll();
    }
 
    @PostMapping
    public MyEntity createEntity(@RequestBody MyEntity entity) {
        return service.save(entity);
    }
 
    // 其他HTTP处理方法
}

6. 启动应用程序

确保ElasticSearch服务器正在运行,然后启动你的Spring Boot应用程序。你现在应该能够通过HTTP请求与ElasticSearch进行交互。

7. 测试

你可以使用Postman或curl来测试你的API。例如,创建一个新的实体:

curl -X POST "http://localhost:8080/my-entities" -H "Content-Type: application/json" -d '{
    "id": "1",
    "name": "Test Entity",
    "description": "This is a test entity."
}'

获取所有实体:

bash复制代码

curl -X GET "http://localhost:8080/my-entities"

这样,你就完成了在Spring Boot中集成和使用ElasticSearch的基本步骤。如果需要更高级的功能,比如自定义查询、分页、排序等,可以参考Spring Data ElasticSearch的官方文档。或者这个文档https://blog.csdn.net/ZGL_cyy/article/details/112796302


http://www.kler.cn/a/452543.html

相关文章:

  • Python 项目组织最佳实践:从脚本到大型项目的进化之路
  • 攻防世界web第三题file_include
  • 计算机网络概要与习题
  • 使用 Python 创建多栏 Word 文档 – 详解
  • Kubernetes(k8s)离线部署DolphinScheduler3.2.2
  • 重温设计模式-外观模式和适配器模式的异同
  • Magnet: 基于推送的大规模数据处理Shuffle服务
  • Scala课堂小结
  • 【express-generator】02-路由基本使用+api工具测试路由
  • uniapp——APP读取bin文件,解析文件的数据内容(二)
  • 【Rust自学】6.3. 控制流运算符-match
  • 【免费分享】mysql笔记,涵盖查询、缓存、存储过程、索引,优化。
  • 代码随想录day25 | leetcode 491.递增子序列 46.全排列 回溯总结
  • Grok 2.0:马斯克的大模型挑战ChatGPT,AI竞争再升级
  • 【玩转MacBook】Maven安装
  • 大数据之 HDFS:特性与架构
  • Lua语言入门 - Lua 面向对象
  • Excel粘贴复制不完整的原因以及解决方法
  • 在git commit之前让其自动执行一次git pull命令
  • [python SQLAlchemy数据库操作入门]-05.插入数据:记录单笔股票交易信息
  • 【学习总结|DAY023】Java高级技术
  • SpringBoot统计接口请求耗时
  • Docker 部署 plumelog 最新版本 实现日志采集
  • 【前端必读】如何免费无限使用Cursor:AI编程工具的终极指南!
  • Merry Christmas HTML
  • Redis——缓存击穿