一种基于Java注解实现的ElasticSearch检索方法与流程

文档序号:40747553发布日期:2025-01-21 11:37阅读:7来源:国知局
一种基于Java注解实现的ElasticSearch检索方法与流程

本发明涉及数据检索,具体涉及一种基于java注解实现的elasticsearch检索方法。


背景技术:

1、在互联网飞速发展的过程中,随着公司规模的不断扩大和业务体系的不断升级,业务数据会快速膨胀到几亿、几十亿都是很常见的,如何能将如此大规模的数据快速检索出来成了行业的共有问题。elasticsearch是一种能支持海量数据存储与检索的数据存储,elasticsearch虽然性能优越,但是对于开发人员来讲,上手成本较高,实现检索的复杂度较大,如何让开发人员以最快的速度上手并实现使用就成了关键。

2、目前,业界提供的针对elasticsearch检索的客户端有spring-data-elasticsearch、bboos、resthighlevelclient等,开发人员均有较高的使用门槛,而且需要自行组装查询api或者组装查询模版,都有较大的工作量,开发效率低下。


技术实现思路

1、为了解决上述问题,使开发人员更快速便捷使用elasticsearch,本发明提出了基于注解检索elasticsearch的方法,开发人员可以轻量级的上手使用,无需任何elasticsearch基础。

2、为实现上述目的,本发明采用的技术方案如下:

3、一种基于java注解实现的elasticsearch检索方法,包括以下步骤:

4、步骤1、定义java注解,每一个java注解对应一个elasticsearch查询语法;

5、步骤2、定义每个java注解的api;

6、步骤3、获取java对象a,一个java对象a包含一个或多个检索字段,根据检索字段的elasticsearch查询语法,选择对应的java注解标识在每个检索字段上;

7、步骤4、递归解析出java对象a中标识有java注解的检索字段,调用java注解对应的api,生成elasticsearch查询语句,通过elasticsearch查询语句得到elasticsearch检索结果;

8、步骤5、将elasticsearch的检索结果解析为java对象b并返回。

9、进一步地,步骤2中,每个java注解封装有一个api:api的入参field为检索字段、value为检索字段值,每一个api对应有一个解析方法。

10、进一步地,解析方法的方法体是先获取检索字段的java注解,然后根据java注解获取检索字段的字段名,再将检索字段的字段名与检索字段值组装为elasticsearch查询语句。

11、进一步地,步骤4包括以下操作:步骤41、利用java反射获取java检索对象所有检索字段;步骤42、遍历所有检索字段,每一个检索字段根据标注的java注解调用对应api的解析方法,组装elasticsearch的检索语句;步骤43、通过elasticsearch的检索语句得到elasticsearch的检索结果。

12、进一步地,步骤41包括:调用object类的getclass()函数,得到java检索对象所有检索字段,调用class.getdeclaredfields()函数,得到检索字段中所有属性。

13、进一步地,步骤41中,当得到的检索字段为嵌套对象时,迭代重复步骤41。

14、进一步地,步骤42中,若检索字段为父类检索字段,对父类检索字段的java注解进行递归,根据递归后最上层父类检索字段标注的java注解调用对应的api。

15、进一步地,步骤5包括以下操作:步骤51、提取elasticsearch的检索结果返回的hits数组;步骤52、遍历hits数组;步骤53、将每一个hits数组元素序列化为json数据,再将json数据解析为java对象b。

16、与现有技术相比,本发明具有以下有益效果:

17、本发明基于java注解快速实现elasticsearch的检索,节省了开发人员学习elasticsearch的时间成本,无需自行组装复杂的elasticsearch查询语句,极大提高了开发效率。本发明通过递归复用java注解的解析内核,实现检索逻辑的无限嵌套。



技术特征:

1.一种基于java注解实现的elasticsearch检索方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种基于java注解实现的elasticsearch检索方法,其特征在于,步骤2中,每个java注解封装有一个api:api的入参field为检索字段、value为检索字段值,每一个api对应有一个解析方法。

3.根据权利要求2所述的一种基于java注解实现的elasticsearch检索方法,其特征在于,解析方法的方法体是先获取检索字段的java注解,然后根据java注解获取检索字段的字段名,再将检索字段的字段名与检索字段值组装为elasticsearch查询语句。

4.根据权利要求2所述的一种基于java注解实现的elasticsearch检索方法,其特征在于,步骤4包括以下操作:步骤41、利用java反射获取java检索对象所有检索字段;步骤42、遍历所有检索字段,每一个检索字段根据标注的java注解调用对应api的解析方法,组装elasticsearch的检索语句;步骤43、通过elasticsearch的检索语句得到elasticsearch的检索结果。

5.根据权利要求4所述的一种基于java注解实现的elasticsearch检索方法,其特征在于,步骤41包括:调用object类的getclass()函数,得到java检索对象所有检索字段,调用class.getdeclaredfields()函数,得到检索字段中所有属性。

6.根据权利要求5所述的一种基于java注解实现的elasticsearch检索方法,其特征在于,步骤41中,当得到的检索字段为嵌套对象时,迭代重复步骤41。

7.根据权利要求4所述的一种基于java注解实现的elasticsearch检索方法,其特征在于,步骤42中,若检索字段为父类检索字段,对父类检索字段的java注解进行递归,根据递归后最上层父类检索字段标注的java注解调用对应的api。

8.根据权利要求1所述的一种基于java注解实现的elasticsearch检索方法,其特征在于,步骤5包括以下操作:步骤51、提取elasticsearch的检索结果返回的hits数组;步骤52、遍历hits数组;步骤53、将每一个hits数组元素序列化为json数据,再将json数据解析为java对象b。


技术总结
本发明公开了一种基于Java注解实现的ElasticSearch检索方法,所述方法包括定义Java注解;定义每个Java注解的API;获取Java对象A,一个Java对象A包含一个或多个检索字段,选择对应的Java注解标识在每个检索字段上;递归解析出Java对象A中标识有Java注解的检索字段,调用Java注解对应的API,生成ElasticSearch查询语句,得到ElasticSearch检索结果;将ElasticSearch的检索结果解析为Java对象A并返回。本发明基于Java注解实现ElasticSearch检索,降低开发人员对ElasticSearch的使用门槛,提升开发效率。

技术研发人员:梁宝乐,张之宝,张鑫,刘璐
受保护的技术使用者:云筑信息科技(成都)有限公司
技术研发日:
技术公布日:2025/1/20
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1