早年封装的java es jpa api 网关代理项目
https://github.com/cclient/spring-boot-es-jpa-proxy
项目很老了,最近有新的类似工作,因此又翻了出来
2016年的es查询半调研半过渡的项目
当时es版本2.3,尝试用java封装es的各种查询和聚合逻辑
用java的成本,开始作前就已有预料,真作,还是觉得太折腾
es查询,说白了就是拼各种json查询条件
java和go这种强类型的语言直接操作json还是太过痛苦
用es原生api吧,不直观(作不到直接把json拷来拷去直接测试)
把json字符串,大量的放在java代码里,不伦不类
相比tcp的那点效率,不值得付出如此多的开发成本
完成部分功能后,后期全改用nodejs重写
主要功能
1 ik elasticsearch plugin 动态更新词库api
2 sql数据->行业词典文件生成
3 部分数据sql->es 索引+更新
4 部分查询+聚合api
当时尝试用java作的原因有几点
1 一直想用spring-boot,算是以此为引子作个探索和学习
2 其他语言的大部分都只是通过http接口,没有java直接走tcp高效
3 其他语言部分特性支持不全,会碰到各种小问题,印象中python的包访问集群某个参数就不生效
最主要的原因是想用spring-boot,虽然这个项目没有一直坚持下去
但用这里的经验后期把大部分java项目,spring-boot+docker+kubernate微服务化,也算没白费时间
把冗余的大量代码去了,姑且还能算是sprint-boot+jpa+es的demo项目,个人调研,所以代码比较粗糙
备注
项目中 mybatis 只是为了自动生成实体类用的,实际访问只用jpa,个人非常讨厌mybatis的项目
mybatis 出活快,但不加约束规范,时间越久,代码会越来越难看,见过一个项目,三种不同风格的mybatis,也是服了
jsp页面和如今前后端分离相比完全落伍,当时也只展示几个页面,这也是最后一个带后端渲染的项目,保留算是个纪念