【技术实现步骤摘要】
一种基于ElasticSearch的数据查询方法和装置
[0001]本专利技术涉及计算机
,尤其涉及一种基于ElasticSearch的数据查询方法和装置。
技术介绍
[0002]ElasticSearch是一个基于Lucene(即,一个开放源代码的全文检索引擎工具包)的搜索服务器,其提供了一个分布式多用户能力的全文搜索引擎。目前,可以利用ElasticSearch提供的原生Java客户端API构建查询,也可以基于Spring Data(即,一个用于简化数据库访问并支持云服务的开源框架)的子模块spring
‑
data
‑
elasticsearch进行数据查询。
[0003]但是,现有的基于ElasticSearch的数据查询方法存在如下问题:一、利用原生Java客户端API构建查询的方法,语法复杂,且该方法较为专业,容易出错;二、利用spring
‑
data
‑
elasticsearch进行数据查询的方法,当条件变化时需要修改方法定义,可 ...
【技术保护点】
【技术特征摘要】
1.一种基于ElasticSearch的数据查询方法,其特征在于,包括:接收数据查询请求,获取所述数据查询请求对应的数据查询条件和所述数据查询请求对应的识别方法;根据所述数据查询请求对应的识别方法,确定所述数据查询条件对应的数据查询类型,其中,所述数据查询类型包括合取查询和复杂查询;利用所述数据查询类型对应的解析规则,对所述数据查询条件进行解析,生成所述数据查询条件对应的ElasticSearch查询语句;执行所述ElasticSearch查询语句,获得所述数据查询条件对应的数据查询结果。2.根据权利要求1所述的方法,其特征在于,所述数据查询条件包括多个查询项;以及,所述利用所述数据查询类型对应的解析规则,对所述数据查询条件进行解析,生成所述数据查询条件对应的ElasticSearch查询语句,包括:若所述数据查询类型为合取查询,则根据所述多个查询项对应的字段表达式和字段值,生成所述数据查询条件对应的ElasticSearch查询语句;若所述数据查询类型为复杂查询,则利用模板引擎进行解析,生成所述数据查询条件对应的ElasticSearch查询语句;其中,合取查询是指查询项之间的关系均为合取的查询,复杂查询是指查询项之间的关系存在或的查询。3.根据权利要求2所述的方法,其特征在于,所述根据所述多个查询项对应的字段表达式和字段值,生成所述数据查询条件对应的ElasticSearch查询语句,包括:针对所述多个查询项中的每个查询项,对所述每个查询项对应的字段表达式进行解析,获得所述每个查询项包含的字段和运算符;按照运算符与ElasticSearch查询语法的对应关系,根据所述每个查询项包含的字段、运算符和字段值,生成所述每个查询项对应的ElasticSearch查询语句;将所述每个查询项对应的ElasticSearch查询语句进行组合,生成所述数据查询条件对应的ElasticSearch查询语句。4.根据权利要求3所述的方法,其特征在于,在生成所述每个查询项对应的ElasticSearch查询语句之后,所述方法还包括:根据所述每个查询项包含的字段对应的注解,确定所述每个查询项对应的ElasticSearch查询语句的查询路由、查询索引范围和嵌套关系。5.根据权利要求2所述的方法,其...
【专利技术属性】
技术研发人员:韩高升,
申请(专利权)人:北京京东世纪贸易有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。