首页 > 其他分享 >好的工具,就应该像女孩子的衣服

好的工具,就应该像女孩子的衣服

时间:2023-08-27 16:32:45浏览次数:24  
标签:女孩子 衣服 代码 ElasticSearch ES Easy 使用 工具 Es

哈喽,大家好,我是指北君

ElasticSearch 凭借强大的搜索功能和优异的性能从众多搜索引擎中脱颖而出,赢得了广大程序员的喜爱。作为搜索服务界的扛把子,凭借其分布式、高扩展、高实时的搜索与数据分析能力,备受各个大小公司的追捧,将 Kibana 和 Logstash 收为麾下后,ELK的组合更是奠定了第一的位置,远远的将其它竞争对手甩在身后。

虽然 ElasticSearch 的地位已经无法撼动,使用者同时也深受 DSL 的摧残,特立独行的使用方式深受广大程序员的诟病,让很多熟悉SQL的程序员觉得使用的学习成本特别高,甚至直接被劝退。

今天指北君就给大家介绍一个开源框架 Easy-Es,大大地降低 ES 使用的成本。

简介

好的工具,就应该像女孩子的衣服_搜索

Easy-Es 是一款简化 ElasticSearch 搜索引擎操作的开源框架,全自动智能索引托管。简化 CRUD 及其它高阶操作,可以更好地帮助开发者减轻开发负担。底层采用 Es 官方提供的 RestHighLevelClient,保证其原生性能及拓展性。

Easy-Es 的开发者,参考 Mybatis-Plus,在其对 ES DSL 语法进行深入研究后,在 DSL 语法之上,对照Mybatis-Plus的功能,开发出了一个能与 ES 交互的 ES 版 Mybatis-Plus。工具使用起来也极为简单。

下面是 Easy-Es 的代码框架图:

好的工具,就应该像女孩子的衣服_开发者_02

使用对比

ElasticSearch 的 DSL 在使用惯了 SQL 的程序员来说非常不习惯。RestHighLevelClient 的 API 作为 ElasticSearch 备受推荐的客户端组件,其封装系统操作 ES 的方法, 包括索引结构管理,数据增删改查管理,常用查询方法,并且可以结合原生 ES 查询原生语法,功能十分强大。下面我们就将 Easy-Es 和 RestHighLevelClient 对比一下。从代码层面上,我们来感受一下 Easy-Es 的简捷使用方法,如下:

需求:查询出文档标题为 "中国功夫"且作者为"老汉"的所有文档

// 使用 Easy-Es
LambdaEsQueryWrapper<Document> wrapper = new LambdaEsQueryWrapper<>();
wrapper.eq(Document::getTitle, "中国功夫").eq(Document::getCreator, "老汉");
List<Document> documents = documentMapper.selectList(wrapper);
// 直接用RestHighLevelClient进行查询
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);
 // 然后从searchResponse中通过各种方式解析出DocumentList 省略这些代码...
} catch (IOException e) {
    e.printStackTrace();
}

以上项目README上提供的简单查询例子,从代码量上可以直接看出该框架的简洁,如果在实际使用场景中,越复杂能节省的代码量只会就越多,按官方说法平均可节省3-5倍代码量。上述功能仅供演示,仅为 Easy-Es 支持功能的冰山一角,更多的深度使用,大家可以深入研究并投入使用。

开源支持

好的工具,就应该像女孩子的衣服_搜索引擎_03

开源地址:

gitee.com/dromara/eas…

官网首页:

easy-es.cn/

从代码更新时间和频率上看,项目的活跃度很高,最新更新时间是在5天前。

由此可见,码农们接入easy-es,可谓优势多多:

  1. 简单易用高效,MyBatis-Plus用户懂的都懂,大把的时间节省出来。
  2. 使用门槛降低,就算是不懂Es的小白,也可以用EE开发各种功能
  3. 大幅减少代码量,提升代码可读性,降低重复代码量,提升代码质量
  4. 专业答疑团队,在使用过程中有任何问题都可以到项目里提交 issue
  5. 开发者承诺永久免费,不像国内大多数伪开源项目,大家都懂的

SpringBoot 集成示例

现在 SpringBoot 可以说是特别火的框架,很多大公司都在使用 SpringBoot 构建项目,所以 Easy-Es 提供了 SpringBoot 集成 Easy-Es 的 demo,使用者可以快速的从 demo 开始进行整合,可以在 easy-es.cn/#/demo进行查看。

指北君有话说

Easy-Es 可以在开发上为使用者大大地提高生产力,简洁的使用方法。感兴趣的小伙伴可以下载试用,如果在使用过程中有问题可以提交 issue。

关注公众号 [程序员了不起]回复[eee113] 即可获取navicat绿版

标签:女孩子,衣服,代码,ElasticSearch,ES,Easy,使用,工具,Es
From: https://blog.51cto.com/u_16231677/7253669

相关文章

  • 业界都有哪些数据库监控工具
    本文主要介绍下数据库监控工具。业界有很多数据库监控工具,以下是一些常见的数据库监控工具及其使用的公司:Zabbix:一款开源的企业级分布式监控解决方案,支持对MySQL、Redis、MongoDB等多种数据库的监控。使用的公司包括:IBM、Nokia、Dell等。Prometheus:一款开源的监控和告警系统,支......
  • 数据库备份工具有哪些
    本文主要介绍下数据库备份工具。数据库备份工具有很多种,以下是一些常见的数据库备份工具:mysqldump:MySQL官方提供的命令行备份工具,适用于MySQL和MariaDB数据库。它可以将数据库导出为SQL文件,方便进行备份和恢复。属于逻辑备份工具。MyDumper:一款开源的MySQL备份工具,比mysqld......
  • mysql 深入学习三 索引优化二 (索引下推、trace工具)
    使用上一篇的表并插入测试数据#‐‐插入一些示例数据dropprocedureifexistsinsert_emp;delimiter;;createprocedureinsert_emp()begindeclareiint;seti=1;while(i<=100000)doinsertintoemployees(name,age,position)values(CONCA......
  • 在移动硬盘上安装Win11系统(不使用工具)
    一、准备镜像文件1、前往官网下载Win11镜像文件。Win11官网:DownloadWindows11(microsoft.com)2、装载Win11镜像找到Win11镜像。右键点击装载之后再此电脑里面就能看见一个DVD驱动器,记住这个驱动器的盘符,这里为F盘。二、划分分区1、选择磁盘按Windows键+R键打开运行,输......
  • 开源.NetCore通用工具库Xmtool使用连载 - XML操作篇
    【Github源码】《上一篇》介绍了Xmtool工具库中的发送短信类库,今天我们继续为大家介绍其中的XML操作类库。XML操作是软件开发过程中经常会遇到的情况;包括XML内容的遍历解析,或者特定值内容的查询获取等等。Xmtool工具库提供了一种更方便的方式对Xml进行遍历解析或者对特定节点内......
  • 时间管理-时间的矛盾特征+时间管理的六步法则+时间管理的工具和技巧
    一、时间的矛盾特征时间浪费的角色:二、时间管理的六步法则1.意识认知法提升认知提前规划学会聚焦主动管理2.行为清单法3.整合优化法4.四项类别法判断这些事情与单位的影响程度5.标准执行法6.早思晚省早上:1.六大目标2.快乐、高效完成3.与朋友、......
  • 用Python制作截图小工具
    Python编程语言允许我们执行各种任务,所有这些都是在简单模块和短小精悍的代码的帮助下完成的。在Python的帮助下进行屏幕截图就是这样一项任务。Python为我们提供了许多模块,使我们能够执行不同的任务。有多种方法可以使用Python及其库进行屏幕截图。用Pyautogui模块进行截图第......
  • VSCODE工具 VUE代码格式化插件及配置
    1.安装插件1.1Prettier它通过解析代码并使用自己的规则重新打印它,并考虑最大行长来强制执行一致的样式,并在必要时包装代码。如今,它已成为解决所有代码格式问题的优选方案;支持JavaScript、Flow、TypeScript、CSS、SCSS、Less、JSX、Vue、GraphQL、JSON、Markdown等语......
  • 自动直播解说系统工具
      自动直播解说系统工具是一个代替了人工直播的程序软件,它的开发集合了多种的技术手段,实现自动直播回答用户提出的问题,为粉丝们带来一个不错的体验。  自动直播解说系统工具采用了高清摄像头和音频处理技术,能够提供清晰流畅的画面和音质,使得观众可以更加真实地感受到游戏......
  • 【Qt6】工具提示以及调色板设置
    工具提示即ToolTip,当用户把鼠标移动到某个UI对象上并悬停片刻,就会出现一个“短小精悍”的窗口,显示一些说明性文本。一般就是功能描述,让用户知道这个XX是干啥用的。在Qt中使用工具提示最方便的做法是直接用QWidget类的成员方法:setToolTip。从QWidget类派生的组件都可以用,......