Easy-Es —— 傻瓜级 ElasticSearch 搜索引擎 ORM 框架
为简化开发工作、提高生产效率而生
Easy-Es是一款简化 ElasticSearch 搜索引擎操作的开源框架,全自动智能索引托管。
目前功能丰富度和易用度及性能已全面领先SpringData-Elasticsearch.
简化CRUD
及其它高阶操作,可以更好的帮助开发者减轻开发负担
底层采用Es官方提供的RestHighLevelClient,保证其原生性能及拓展性.
项目推广初期,还望大家能够不吝点点三连:⭐Star,👀Watch,fork📌
支持一下国产开源,让更多人看到和使用本项目,非常感谢!
优点 | Advantages
- 全自动索引托管: 全球开源首创的索引托管模式,开发者无需关心索引的创建更新及数据迁移等繁琐步骤,索引全生命周期皆可托管给框架,由框架自动完成,过程零停机,用户无感知,彻底解放开发者
- 屏蔽语言差异: 开发者只需要会MySQL语法即可使用Es
- 代码量极少: 与直接使用RestHighLevelClient相比,相同的查询平均可以节3-8倍左右的代码量
- 零魔法值: 字段名称直接从实体中获取,无需输入字段名称字符串这种魔法值
- 零额外学习成本: 开发者只要会国内最受欢迎的Mybatis-Plus语法,即可无缝迁移至Easy-Es
- 降低开发者门槛: 即便是只了解ES基础的初学者也可以轻松驾驭ES完成绝大多数需求的开发
- 功能强大: 支持MySQL的几乎全部功能,且对ES特有的分词,权重,高亮,嵌套,地理位置Geo,Ip地址查询等功能都支持
- 安全可靠: 墨菲安全扫描零风险,且代码单元测试综合覆盖率高达95%以上.
- 完善的中英文文档: 提供了中英文双语操作文档,文档全面可靠,帮助您节省更多时间
- ...
对比 | Compare
需求:查询出文档标题为 "传统功夫"且作者为"码保国"的所有文档
// 使用Easy-Es仅需1行代码即可完成查询 List<Document> documents = documentMapper.selectList(EsWrappers.lambdaQuery(Document.class).eq(Document::getTitle, "传统功夫").eq(Document::getCreator, "码保国"));
// 传统方式, 直接用RestHighLevelClient进行查询 需要19行代码,还不包含下划线转驼峰,自定义字段处理及_id处理等代码 String indexName = "document"; SearchRequest searchRequest = new SearchRequest(indexName); BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); TermQueryBuilder titleTerm = QueryBuilders.termQuery("title", "传统功夫"); TermsQueryBuilder creatorTerm = QueryBuilders.termsQuery("creator", "码保国"); boolQueryBuilder.must(titleTerm); boolQueryBuilder.must(creatorTerm); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); searchSourceBuilder.query(boolQueryBuilder); searchRequest.source(searchSourceBuilder); try { SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT); List<Document> documents = Optional.ofNullable(searchResponse) .map(SearchResponse::getHits) .map(SearchHits::getHits) .map(hit->Document document = JSON.parseObject(hit.getSourceAsString(),Document.class)) .collect(Collectors.toList()); } catch (IOException e) { e.printStackTrace(); }
- 以上只是简单查询演示,实际使用场景越复杂,效果就越好,平均可节省至少3-8倍代码量
- 传统功夫,点到为止! 上述功能仅供演示,仅为Easy-Es支持功能的冰山一角,Easy-Es就是这么Easy到不讲武德💪,不用的请耗子尾汁.
官网地址 | Official website
easy-es官网 https://easy-es.cn/
开源社区dromara https://dromara.org/
开源社区码云首页 https://gitee.com/dromara/
Tip: 官网是vue单页面应用,首次访问加载可能比较慢🐢,主公们请耐心等待一下,后续会很快🏹,如偶遇打不开可刷新多尝试几次.
架构 | Architecture
相关链接 | Links
Latest Version: ![Maven Central]()
Maven:
<dependency> <groupId>cn.easy-es</groupId> <artifactId>easy-es-boot-starter</artifactId> <version>Latest Version</version> </dependency>
Gradle:
compile group: 'cn.easy-es', name: 'easy-es-boot-starter', version: 'Latest Version'
其他开源项目 | Other Project
期望 | Futures
欢迎提出更好的意见,帮助完善 Easy-Es
版权 | License
捐赠 | Donate
您的支持是鼓励我们前行的动力,无论金额多少都足够表达您这份心意。
如果您愿意捐赠本项目,推荐直接在右下方通过Gitee直接捐赠.
关注我 | About Me

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
每日一博 | 社区点赞业务缓存设计优化探索
原创 慎之 得物技术 背景 内容点赞业务在得物社区中是一个非常高频的业务场景,功能本身复杂度不高,但是业务场景多、QPS高、而且由于社区的用户体量,整体点赞的数据量非常大。其中最核心、对响应性能要求最高的主要是“用户是否点赞内容”和“内容点赞数”场景。 在得物社区中凡是有内容消费的场景,都会有上面两个点赞场景的处理,所以整体点赞业务的QPS在社区都是非常高的。当我们在刷各种Feed流时,每一次下滑,都需要对数十篇内容进行登录用户是否点赞状态的判断。作为基础业务,内容点赞业务的高性能响应,对上游内容场景的消费体验有极大的影响。 本文对得物社区的点赞业务如何做到高性能响应以及历史上在缓存使用上关于高性能、稳定性、低成本上的优化探索过程进行讲述,希望能给读者带来一些收获。 演进探索 v1.0版本 功能需求 社区各种Feed流及内容详情页“登录用户是否已点赞内容” “内容被赞总数” “内容最新点赞用户列表”几个场景消费展示。 实现方案 点赞业务整体的高性能是基于Redis+MySQL架构。MySQL做数据存储和查询支持,Redis撑起业务的高性能响应。在1.0版本中,服务架构还是单体PHP服务...
- 下一篇
Ubuntu 22.10 将配备 Linux 5.19 内核
Ubuntu 22.10 将由 Linux 5.19 内核驱动。尽管到目前为止,Ubuntu 22.10 的开发仍然在 Linux 5.15 LTS 内核上运行。但最新推出的 Kinetic 存档显示,Ubuntu 22.10 正在从 Linux 5.15 切换到 Linux 5.19,作为这个非 LTS Ubuntu 版本的预期内核。 Linux 5.19 于 7 月底发布,Linux 6.0 稳定版要到 10 月初才会发布。但 Ubuntu 22.10 的内核冻结日期是 10 月 6 日,稳定版本发布日期在 10 月 20 日。Canonical 一向趋于保守,不会冒跳票延期的风险选择最新的 Linux 6.0内核。 目前,Linux 5.19 内核构建已被定位在 kinetic-proposed 中,很快就会向 Ubuntu 22.10 的开发用户提供,以取代现有的基于 5.15 的内核。此外,Ubuntu 22.10 将随桌面版 GNOME 43、Mesa 22.2 图形驱动程序、作为默认系统编译器的 GCC 12 以及各种其他更新包一起提供。
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS关闭SELinux安全模块
- CentOS8编译安装MySQL8.0.19
- CentOS8安装Docker,最新的服务器搭配容器使用
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Red5直播服务器,属于Java语言的直播服务器
- Windows10,CentOS7,CentOS8安装Nodejs环境