以下文章来源 原创 了不起 [开源小分队]
ES全称ElasticSearch,是一个基于Lucene的搜索服务器,高度可拓展的开源全文搜索和分析引擎,可用于快速的对大数据进行存储,搜索和分析。但是 ES 的 API 使用还是比较难的。
今天给大家推荐一个使用简单功能强大的ORM开发框架 -- Easy-Es。
项目简介
Easy-Es 是在RestHighLevelClient 基础上做的增强,目的是简化开发,和我们熟悉的 Mybatis-Plus使用方式差不多。
- 强大的增删改查操作:使用 Mapper实现各种增删改查
- 学习成本小:不需要学习 ES 的语法,如果会 Mybatis-Plus语法,学习Easy-Es 很快。
- 支持 Lambda表达式:使用起来更方便,代码量更少!
项目架构
项目使用
前置条件是安装了Es,我这里演示的 ES 版本是 7.17.10
引入依赖
<dependency>
<groupId>org.dromara.easy-es</groupId>
<artifactId>easy-es-boot-starter</artifactId>
<version>2.0.0-beta2</version>
</dependency>
添加配置
easy-es:
enable: true #true启用easy-es
address : 127.0.0.1:9200 # es的连接地址
简单使用
创建实体类:
@Data
public class Goods {
//商品ID
private String id ;
//名称
private String name;
//描述
private String description;
//价格
private Double price;
}
创建mapper类:
public interface GoodsMapper extends BaseEsMapper<Goods> {
}
单元测试:
@Test
public void insert() {
Goods goods = new Goods();
goods.setId(UUID.randomUUID().toString());
goods.setName("手机 HUAWEI P60 Pro");
goods.setDescription("超可靠昆仑玻璃,玲珑四曲屏 | 双向北斗卫星消息,灵犀通信");
int successCount = goodsMapper.insert(goods);
System.out.println(successCount);
}
@Test
public void select() {
String name = "手机";
LambdaEsQueryWrapper<Goods> wrapper = new LambdaEsQueryWrapper<>();
wrapper.like(Goods::getName, name)
.limit(10);
List<Goods> goods = goodsMapper.selectList(wrapper);
System.out.println(goods);
}
查询结果:
[Goods(id=C6nfYIgBkdGiypq6p7jb, name=手机 HUAWEI P60 Pro, description=超可靠昆仑玻璃,玲珑四曲屏 | 双向北斗卫星消息,灵犀通信, price=null)]
项目地址
github:https://github.com/dromara/easy-es
总结
Easy-Es 能我们快速上手使用 ElasticSearch, API 操作非常简单,不需要额外的学习成本,只要能了解 ES 的入门知识,即可快速应用起来,感兴趣的同学赶快去试试吧~