大战前夕: 接上回(1.0),却说老汉自上回Push*一战,取得ES首级,献于祖师爷青苗(MP作者),自此声名大燥。怎奈ES那厮并非好惹之怨种,都言虎父无犬子,ES那厮有三个义子,各个生身怀绝技,长子RestLowLevelClient唤作道邢荣将军,次子RestHighLevelClient唤作潘凤上将,三子es8唤作刘三刀校尉。鉴于长子年迈,三子年幼,为父报仇之重任落于次子。 次子凤姐听闻父陨,怒火中烧,驾胯下汗血宝马GT,挥舞两把开山巨斧,直奔老汉杀来,一边狂奔一边口中嘟囔“哇呀呀呀呀,俺滴大斧早已饥渴难耐了(liao)”!说时迟那时快,只见凤姐一声“潇洒滴瓢瓜”,凌空就是一斧,手起斧落,吓得老汉丢车保"帅",落荒而逃,老汉一边鼠窜,一边整理发型,并言道:头可断,血可流,发型不能乱!这边凤姐哪肯罢休,越发得劲,一鼓作气,拍着马屁股就是一顿猛追,岂料老汉并非等闲之辈,多年修炼早已习得色艺双绝,所谓兵不厌诈,老汉诈败逃窜之际,掏出凶器,趁凤姐不备阴笑“小飞棍来了”!凤姐始料未及,被老汉之"凶器"偷袭,尔后又祭出一套王八组合拳: 啪 一个右鞭腿! 啪 一个左正蹬! 啪 一个连五鞭!
打得那凤姐,叽里又呱啦!老汉乘机生擒凤姐,得意忘形,迈出了魔鬼地步伐,"俺说了俺只需略微出手,就已知此分段之极限矣,那年俺双手插兜,不知甚是对手"! 凤姐心中颇为不服,口吐芬芳:这糟老头子坏得很,老夫今日误中其奸计矣。 老汉言:“年轻人,讲锤子武德”,并再次仰天长啸:犯我大汉者,虽远必猪,呜呼ES,EASY哉!自此EASY-ES正式进迈入2.0-beta时代,天下码农再享太平!
《战神&小趴菜》
一邢二潘刘三刀,四方五穆武安国。 俞涉苟安蒋子翼,二蔡韩玄夏侯楙。 长坂一声夏侯杰,完体将军淳于琼。 三国十七将帅才,皆是老汉碟中菜!
2.0beta1究竟有何能耐,能将号称与吕布齐名,“冀州第一无双大将”潘凤生擒?下面由老汉带领大家一睹EE2.0beta1过人之处! (官人且莫走,文末有彩蛋)
本次2.0beta1分别从以下几个方面给大家带来了惊喜:
- 支持四大嵌套查询并可以无级嵌套(版本最大特性)
MySQL | Mybatis-Plus | ES | Easy-Es |
---|---|---|---|
and 拼接 | 默认 | must | 默认 |
or 拼接 | or() | should | or() |
filter 拼接 | 无 | filter | filter() |
not 拼接 | 无 | must_not | not() |
直观对比:
// MySQL语法 where business_type = 1 and (state = 9 or (state = 8 and bidding_sign = 1)) or (business_type = 2 and state in (2,3)); // Easy-Es及Mybatis-Plus语法 wrapper.eq("business_type", 1) .and(a -> a.eq("state", 9).or(b -> b.eq("state", 8).eq("bidding_sign", 1))) .or(i -> i.eq("business_type", 2).in("state", 2, 3)); // ES原生的RestHighLevel语法 List<Integer> values = Arrays.asList(2, 3); BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); boolQueryBuilder.must(QueryBuilders.termQuery("business_type", 1)); boolQueryBuilder.must(QueryBuilders.boolQuery() .must(QueryBuilders.termQuery("state", 9)) .should(QueryBuilders.boolQuery().must(QueryBuilders.termQuery("state", 8)) .must(QueryBuilders.termQuery("bidding_sign", 1)))); boolQueryBuilder.should(QueryBuilders.boolQuery().must(QueryBuilders.termQuery("business_type", 2)) .must(QueryBuilders.termsQuery("state", values)));
上面的例子树的最大深度仅为2,如果深度超过2以后ES原生语法就很难看得懂了,更别说正确编码,就算您是ES老手也容易栽坑里,但现在你可以通过EE 1:1轻松又简单还原复杂SQL.
2.支持全部nestedQuery 丰富了1.0中nested类型的功能支持,在1.0中仅支持nestedMacht但在2.0中所有es能支持的nestedQuery都能开箱即用,采用Lambda语法构造,使用非常简单.
3.引入各种智能化套件,能从框架自动推断的绝不麻烦用户指定,进一步减少小白踩坑的可能. 索引创建时默认的字段类型由keyword调整为text_keyword双类型,并且在查询时会根据查询类型和注解配置的类型自动智能决策是否拼接.keyword后缀; 距离的获取支持多排序器功能,并且不再需要用户手动指定排序迭代器位置,由框架全自判断处理;
4.其它...共计10余项新功能特性以及10余项优化改进和1项缺陷修复,可以在文末前往官网查看详情!
结语 2023华灯初上,万家灯火却没有一盏为我而明,快乐都是你们的,而我只有大把空闲时间可以深度思考,解决了困扰一年的算法问题,至此2.0版本至少提前半年与诸位见面,还望不吝点个Star,支持一波,聊以慰藉我逝去的大年,最后恭祝各位点亮的将军,钱财兔如奇来,技术兔飞猛进,撸码兔起鹘落!也祝看完没点亮小星星的道荣将军们,新的一年像刚发动的拖拉机一样,兔秃秃秃tututu...
《彩蛋》
三刀听闻大哥被生擒,急诏左右文武,倾举国之力,咬碎钢牙,誓必报殺父之仇与擒兄之恨。 这边老汉闻之,言敌众我寡,若不能聚天下之贤良,吾命将休矣,吓得屁滚尿流,急向天下布告:
《诏书》 苍天已死,黄天当立,岁在甲子,大吉大利,今晚吃鸡! 今汉运将终,老汉欲救尔等于水火之中,广结天下之贤士,如此霸业可成,尔等皆宜顺天从正,以乐太平,安享吃鸡!如今之际,各位压寨官人及压寨夫人当火速赶往老汉营寨https://www.easy-es.cn/,点击加入社区,密谋大计。 一出旷世好戏,即将上演,欲知后事如何,且听下回分解。
还没有评论,来说两句吧...