MyBatis-Plus 同款 ES ORM框架,用起来就是方便!

235 阅读2分钟

以下文章来源 原创 了不起 [开源小分队]

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:
  enabletrue #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 的入门知识,即可快速应用起来,感兴趣的同学赶快去试试吧~