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 独有的功能,助力您快速实现各种场景的开发。

相关推荐
Elastic 中国社区官方博客7 小时前
为 Elastic Cloud Serverless 和 Elasticsearch 引入统一的 API 密钥
大数据·运维·elasticsearch·搜索引擎·云原生·serverless
Devin~Y7 小时前
大厂Java面试实录:Spring Boot/Cloud、Kafka、Redis、K8s 与 Spring AI(RAG/Agent)三轮连环问
java·spring boot·redis·mysql·spring cloud·kafka·kubernetes
vastsmile9 小时前
(R)26.04.23 hermes agent执行本地命令超级慢的原因
开发语言·elasticsearch·r语言
OtIo TALL14 小时前
Java进阶(ElasticSearch的安装与使用)
java·elasticsearch·jenkins
LSL666_16 小时前
快速Spring Cloud+ELK+AOP搭建一个简单的项目
spring·elk·spring cloud
杰克尼16 小时前
天机学堂项目总结(day11~day12)
spring·spring cloud
青槿吖17 小时前
第二篇:从复制粘贴到自定义规则!Spring Cloud Gateway 断言 + 过滤全玩法,拿捏微服务流量管控
java·spring boot·后端·spring cloud·微服务·云原生·架构
Elastic 中国社区官方博客18 小时前
Jina embeddings v3 现已在 Gemini Enterprise Agent Platform Model Garden 上可用
大数据·人工智能·elasticsearch·搜索引擎·ai·全文检索·jina
武超杰18 小时前
Spring Cloud Gateway 从入门到实战
spring cloud·gateway
海生南梦18 小时前
jenkins配置前端部署
jenkins