SpringCloud整合ElasticSearch搜索使用

环境说明

xml 复制代码
ORM:easy-es 2.0.0(opens new window)
ElasticSearch:7.14.0
pigx:5.2
请保持环境如上,ElasticSearch 兼容性较差无法保证其他版本正常整合执行。

快速开始

① 安装 ElasticSearch

bash 复制代码
docker run --name es714 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -d elasticsearch:7.14.0

② 微服务增加 easy-es 依赖

xml 复制代码
<dependency>
    <groupId>org.dromara.easy-es</groupId>
    <artifactId>easy-es-boot-starter</artifactId>
    <version>2.0.0-beta4</version>
</dependency>

③ 配置文件增加链接配置

yaml 复制代码
spring:
  elasticsearch:
    uris: 127.0.0.1:9200
easy-es:
  address: ${spring.elasticsearch.uris}

示例代码编写

① 创建索引实体

java 复制代码
@Data
@IndexName("document")
public class Document {

	/**
	 * es中的唯一id
	 */
	private String id;

	/**
	 * 文档标题
	 */
	private String title;

	/**
	 * 文档内容
	 */
	private String content;
}

② 创建查询 mapper

java 复制代码
public interface DocumentMapper extends BaseEsMapper<Document> {
}

③ SpringBoot 配置扫描 EsMapper 实现

java 复制代码
@EsMapperScan("com.pig4cloud.pigx.es.mapper")

④ API 调用

java 复制代码
public void testCreateIndex() {
    // 测试创建索引,框架会根据实体类及字段上加的自定义注解一键帮您生成索引。需要确保索引托管模式处于manual手动挡(默认处于此模式),若为自动挡则会冲突。
    boolean success = documentMapper.createIndex();
}

public void testInsert() {
    // 测试插入数据
    Document document = new Document();
    document.setTitle("老汉");
    document.setContent("推*技术过硬");
    int successCount = documentMapper.insert(document);
}

public void testSelect() {
    // 测试查询,写法和MP一样,可以用链式,也可以非链式,根据使用习惯灵活选择即可。
    String title = "老汉";
    Document document = EsWrappers.lambdaChainQuery(documentMapper)
            .eq(Document::getTitle, title)
            .one();
    System.out.println(document);
}

高级用法

Easy-Es(简称 EE)是一款基于 ElasticSearch(简称 Es)官方提供的 RestHighLevelClient 打造的 ORM 开发框架,在 RestHighLevelClient 的基础上,只做增强不做改变,为简化开发、提高效率而生。您如果有用过 Mybatis-Plus(简称 MP),那么您基本可以零学习成本直接上手 EE。EE 是 MP 的 Es 平替版,在有些方面甚至比 MP 更简单,同时也融入了更多 Es 独有的功能,助力您快速实现各种场景的开发。

相关推荐
ganshenml23 分钟前
【GIT】Git 本地无法识别远程分支的原因与解决方法 not a valid ref
大数据·git·elasticsearch
摇滚侠5 小时前
2025最新 SpringCloud 教程,网关功能、创建网关,笔记51、笔记52
java·笔记·spring cloud
香吧香5 小时前
Spring boot 中 CommandLineRunner 在服务启动完成后自定义执行
java·spring boot·spring cloud
摇滚侠6 小时前
2025最新 SpringCloud 教程,Seata-原理-二阶提交协议,笔记70
笔记·spring·spring cloud
kong79069286 小时前
Spring Cloud Consul
spring cloud·服务发现·consul·服务治理
The Straggling Crow7 小时前
熟练版本控制 (Git)、CI/CD 流程。
git·elasticsearch·ci/cd
机灵猫8 小时前
注册中心选型风云:为什么选择 Nacos 而不是 Eureka
spring cloud·eureka
weixin_307779138 小时前
Jenkins 多分支流水线自动化引擎:GitHub Branch Source 插件完全指南
运维·架构·自动化·jenkins
失伟11 小时前
CDC(数据变更捕获)场景应用
mongodb·elasticsearch·kafka·kafka-connect
weixin_3077791311 小时前
Jenkins Ioncions API 插件:现代化图标库在持续集成中的应用
java·运维·开发语言·前端·jenkins