分布式架构之EasyES---和 Mybatis用法相似,太方便了

news2024/9/27 17:36:33

一、EasyES是什么?

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

二、EasyES的理念是什么?

把简单,易用,方便留给用户,把复杂留给框架。

三、EasyES的愿景是什么?

让天下没有难用的ES, 致力于成为全球最受欢迎的ElasticSearch搜索引擎开发框架。

四、EasyES的优势有哪些?

  • 1.全自动索引托管: 全球开源首创的索引托管模式,开发者无需关心索引的创建更新及数据迁移等繁琐步骤,索引全生命周期皆可托管给框架,由框架自动完成,过程零停机,用户无感知,彻底解放开发者。##
  • 2.屏蔽语言差异: 开发者只需要会MySQL语法即可使用Es,真正做到一通百通,无需学习枯燥易忘的Es语法,Es使用相对MySQL较低频,学了长期不用也会忘,没必要浪费这时间.开发就应该专注于业务,省下的时间去撸铁,去陪女朋友陪家人,不做资本家的韭菜。
  • 3.代码量极少: 与直接使用RestHighLevelClient相比,相同的查询平均可以节省3-5倍左右的代码量。
  • 4.零魔法值: 字段名称直接从实体中获取,无需输入字段名称字符串这种魔法值,提高代码可读性,杜绝因字段名称修改而代码漏改带来的Bug。
  • 5.零额外学习成本: 开发者只要会国内最受欢迎的Mybatis-Plus语法,即可无缝迁移至EE,EE采用和前者相同的语法,消除使用者额外学习成本,直接上手,爽。
  • 6.降低开发者门槛: Es通常需要中高级开发者才能驾驭,但通过接入EE,即便是只了解ES基础的初学者也可以轻松驾驭ES完成绝大多数需求的开发,可以提高人员利用率,降低企业成本。

五、EasyES的特性有哪些?

  • 1.**无侵入:**只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑。
  • 2.**损耗小:**启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作。
  • 3.**强大的 CRUD 操作:**内置通用 Mapper,仅仅通过少量配置即可实现大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求。
  • 4.**支持 Lambda 形式调用:**通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错段。
  • 5.**支持主键自动生成:**支持2 种主键策略,可自由配置,完美解决主键问题。
  • 6.**支持 ActiveRecord 模式:**支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作。
  • 7.**支持自定义全局通用操作:**支持全局通用方法注入( Write once, use anywhere )。
  • 8.**内置分页插件:**基于RestHighLevelClient 物理分页,开发者无需关心具体操作,且无需额外配置插件,写分页等同于普通 List 查询,且保持和PageHelper插件同样的分页返回字段,无需担心命名影响。
  • 9.**MySQL功能全覆盖:**MySQL中支持的功能通过EE都可以轻松实现。
  • 10.**支持ES高阶语法:**支持高亮搜索,分词查询,权重查询,Geo地理位置查询,IP查询,聚合查询等高阶语法。
  • 11.**良好的拓展性:**底层仍使用RestHighLevelClient,可保持其拓展性,开发者在使用EE的同时,仍可使用RestHighLevelClient的功能。

六、EasyES的框架结构是怎样的?

image-20230612140354482

七、EasyES有哪些应用场景?

ES适用的地方,EasyES同样适用(基本上可满足大多数的场景要求):

  • 1.搜索文库。
  • 2.电商商品检索。
  • 3.海量系统日志检索。
  • 4.在线智能客服。
  • 5.机器人。
  • 6.打车app。
  • 7.外卖app。
  • 8.社区团购配送。
  • 9.陌生人社交。

八、关于EasyES的资料有哪些?

EasyES官方网站:
https://www.easy-es.cn/

EasyES官方文档:
https://www.easy-es.cn/pages/ec7460/

Easy-Es的Gitee仓库:
https://gitee.com/dromara/easy-es

Easy-Es的Github仓库:
https://github.com/dromara/easy-es

开源不易,如果EasyES对你实际中应用ES有所帮助,不妨给个star鼓励一下开源作者。

九、在项目中如何使用EasyES?

1.引入依赖

<dependency>
    <groupId>com.yc.framework</groupId>
    <artifactId>yc-common-easyes</artifactId>
</dependency>
@Data
public class DocumentEntity {
    /**
     * es中的唯一id
     */
    private String id;
    /**
     * 文档标题
     */
    private String title;
    /**
     * 文档内容
     */
    private String content;
}

3.编写数据实体访问Mapper


@Repository
public interface DocumentMapper extends BaseEsMapper<DocumentEntity> {
}

4.编写Controller

@RestController
public class DocumentController {

    @Autowired
    private DocumentMapper documentMapper;

    @GetMapping("/add")
    public void test() {
        // 测试插入数据
        DocumentEntity document = new DocumentEntity();
        document.setTitle("Hello");
        document.setContent("Hello Easy ES");
        int successCount = documentMapper.insert(document);
        System.out.println(successCount);
    }

    @GetMapping("/query")
    public DocumentEntity query() {
        // 测试查询
        String title = "Hello";
        LambdaEsQueryWrapper<DocumentEntity> wrapper = new LambdaEsQueryWrapper<>();
        wrapper.eq(DocumentEntity::getTitle, title);
        DocumentEntity document = documentMapper.selectOne(wrapper);
        System.out.println(document);
        return document;
    }
}

总结

感兴趣的小伙伴可以的官网一日游,详细研究,我们一起学习,记得关注呦,我们一起努力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/637454.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ETF薛斯通道抄底指标表

ETF薛斯通道抄底指标表(20230611) 小白也能懂的薛斯通道抄底指标以及公式(附源码) 名称规模(亿)上市日期delta医药创新ETF5606000.1882022-03-150.72医疗创新ETF51682011.8472021-07-010.75生物药ETF1598396.8282021-02-221.1生物医药ETF15985928.5592021-07-071.17疫苗ETF1596…

LVS+Keepalived 高可用群集

LVSKeepalived 高可用群集 一、LVSKeepalived 高可用群集1、LVS2、工作原理3、Keepalived的特性、特点&#xff1a;4、Keepalived实现原理剖析5、VRRP &#xff08;虚拟路由冗余协议&#xff09; 二、LVSKeepalived 高可用群集部署1、配置负载调度器&#xff08;192.168.184.10…

004:vue中安装使用Mock来模拟数据(详细教程)

第004个 查看专栏目录: 按照VUE知识点 ------ 按照element UI知识点 echarts&#xff0c;openlayers&#xff0c;cesium&#xff0c;leaflet&#xff0c;mapbox&#xff0c;d3&#xff0c;canvas 免费交流社区 专栏目标 在vue和element UI联合技术栈的操控下&#xff0c;本专栏…

Linux 高可用群集HA LVS+Keepalived高可用 NGINX高可用

Keepalived及其工作原理 Keepalived 是一个基于VRRP协议针对LVS负载均衡软件设计的&#xff0c;通过监控集群中各节点的状态以实现LVS服务高可用的软件&#xff0c;可以解决静态路由出现的单点故障问题。 Keepalived除了能够管理LVS软件&#xff0c;还可以对NGINX haproxy MyS…

HbuilderX--小程序运行配置

安装 HbuilderX 官网下载安装程序 【传送门】 微信小程序开发者工具官网下载 【传送门】 小程序配置 ① 点击顶部工具按钮跳出弹框&#xff0c;弹框第一个设置或者直接使用快捷键 ctrlalt, ② 在配置页面点击运行配置往下划&#xff0c;其余配置如下 微信小程序 将小程序的…

[迁移学习]域自适应

一、定义 1.源域和目标域 源域(Source)和目标域(Target)之间不同但存在联系(different but related)。迁移学习的人物是从源域学习到知识并使其在目标域中取得较好的成绩。 迁移学习可以分为正迁移(postive transfer)和负迁移(negtive transfer)&#xff0c;划分依据是迁移学习…

有哪些好用抠图软件?这几种抠图工具简单又高效

有什么好用的抠图软件呢&#xff1f;通过抠图技术将不同的元素组合在一起&#xff0c;创造出独特的艺术效果。我们日常中也会经常需要进行照片抠图&#xff0c;如拍出的照片背景不满意&#xff0c;想要抠出图片中的人物放到新的背景中&#xff0c;这些都是需要进行抠图才能够完…

微服务_Hystrix

在每个服务中引用该组件&#xff0c;监控当前组件。可被GateWay、Fegin集成。简介 作用&#xff1a;防止服务雪崩 Hystrix是一个由Netflix开源的容错框架&#xff0c;它主要用于分布式系统中的服务间通信。Hystrix通过在调用服务的过程中添加各种容错机制&#xff0c;来保护系…

hbuilderX uni-app 自定义快捷键无效、无法生效解决方法(附:好用的常用的快捷键自定义代码片段)

在最后加上 ,"override": true 才能让原有默认的快捷键被覆盖 好用的常用的快捷键自定义代码片段 [//打开快捷键设置{"key": "altshiftk","command": "workbench.action.openGlobalKeybindings","override": tr…

信息专业求职个人简历最新版

信息专业求职个人简历最新版1 个人信息 _ 性 别&#xff1a; 男 婚姻状况&#xff1a; 已婚 民 族&#xff1a; 汉族 户 籍&#xff1a; 江苏-宜兴 年 龄&#xff1a; 34 现所在地&#xff1a; 江苏-宜兴 身 高&#xff1a; 175cm 希望地区&#xff1a; 江苏-常州、 江苏-…

微软发布自己的 Linux 发行版:Azure Linux

导读在内部使用两年并自 2022 年 10 月起以公共预览版运行后&#xff0c;微软终于在日前正式公开发布了其 Azure Linux 的发行版。 在内部使用两年并自 2022 年 10 月起以公共预览版运行后&#xff0c;微软终于在日前正式公开发布了其 Azure Linux 的发行版。 微软 Azure Lin…

二叉树的层序遍历以及队列的实现

思维导图&#xff1a; 一&#xff0c;什么是层序遍历 层序遍历&#xff0c;顾名思义就是一层一层的遍历。比如我的这棵二叉树&#xff1a; 如果使用层序遍历的话它的结果就会是这样的&#xff1a; 1->5->9->7->10->13->8,这就是一层一层的遍历&#xff0c;一…

SciencePub学术 | 计算机类重点SCIEI征稿中

SciencePub学术 刊源推荐: 计算机类重点SCI&EI征稿中&#xff01;影响因子高&#xff0c;对国人非常友好。信息如下&#xff0c;录满为止&#xff1a; 一、期刊概况&#xff1a; 计算机类重点SCI&EI &#x1f4cc;【期刊简介】IF&#xff1a;7.5-8.0&#xff0c;JCR…

IDEA 关闭 SonarLint 自动扫描

进入Settings → 搜索 SonarLint → 将Automatically trigger analysis取消勾选 即可。

Unity入门2——Unity工作原理

一、工具栏 文件操作&#xff1a;新建工程&#xff0c;新建场景&#xff0c;工程打包等等 编辑操作&#xff1a;对象编辑操作相关&#xff0c;工程设置&#xff0c;引擎设置相关 资源操作&#xff1a;基本等同于 Project 窗口中右键相关功能 对象操作&#xff1a;基本等同于 Hi…

151-B-DC24V、252-B-AC220V气压控制方向阀

151-B-DC24V、252-B-AC220V、332-B-DC24V、453-B-AC220V、232-B-AC110V、351-B-DC24V、431-B-DC12V、253-B-DC24V气动电磁阀体积小,流量大,外形美观,性能可靠.使用寿命长.适用于机电一体化领域.有多重规格和产品颜色可选择&#xff0c;规格G1/8、G1/4、G3/8、G1/2、电控方式&am…

干洗店洗护软件,洗鞋店软件,洗鞋店小程序,

干洗店洗护软件&#xff0c;洗鞋店软件&#xff0c;洗鞋店小程序&#xff0c;水洗标打印标签打印&#xff0c;上门取送&#xff0c;拍照上传&#xff0c;多门店多网点&#xff0c;用户端&#xff0c;骑手端&#xff0c;门店端&#xff0c;网点端。具有以下非常强大的功能和优势…

亚马逊美国站 儿童珠宝首饰CPC认证 ASTM F2923标准CPSIA检测报告

为什么越来越多人爱送珠宝给宝宝? 1、有人说每个小孩子都是来自神的恩典&#xff0c;他们就像父母最珍贵的珠宝值得用一生的时间去呵护与珍藏。 2、西班牙人认为&#xff0c;儿童珠宝作为他们的第一份礼物&#xff0c;会庇佑孩子们未来过上非常幸福&#xff0c;繁荣而成功的…

算法模板(5):数学(4):其他数学

线性代数 高斯消元 ( O ( n 3 ) ) (O(n^3)) (O(n3)) 883. 高斯消元解线性方程组 步骤&#xff1a;枚举每一列&#xff1a;找到绝对值最大的一行&#xff0c;将改行换到最上面&#xff0c;将该行第一个数变成1&#xff0c;将下面所有行的第c列变成0. #include<cstdio>…

年薪80万程序员被鄙视,不如二本教书老师…

“程序员好还是老师好&#xff1f;” 这个问题一直困扰着许多网友&#xff0c;毕竟这两个工作都是让人羡慕的。 程序员普遍收入高&#xff0c;有挑战性&#xff1b;老师是个铁饭碗&#xff0c;休假日多&#xff0c;还有退休金。 也有程序员曾经发帖&#xff0c;表示自己现在…