(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202211270537.0
(22)申请日 2022.10.18
(71)申请人 厦门安胜网络科技有限公司
地址 361008 福建省厦门市集美区软件园
三期诚毅大街3 58号1502-5单元
(72)发明人 林山 廖方彬 郑少明 牛军
陈建冰 方晓毅
(74)专利代理 机构 厦门福贝知识产权代理事务
所(普通合伙) 35235
专利代理师 陈远洋
(51)Int.Cl.
G06F 16/242(2019.01)
G06F 16/2452(2019.01)
G06F 16/2455(2019.01)
(54)发明名称
一种搜索服 务的实现方法及其系统
(57)摘要
本发明提出了一种搜索服务的实现方法, 包
括: S1、 客户端对用户请求进行封装; S2、 客户端
对封装的查询请求转换成统一查询服务可识别
的内容; S3、 所述统一查询服务根据规则解析查
询字段和查询内容, 拼接Elasticsearch查询语
句; S4、 所述统一查询服务将拼接好的所述
Elasticsearch查询语句发起HTTP请求, 并将请
求数据返回给客户端。 通过结合springcloud微
服务, 其他微服务通过feign进行微服务调用, 已
经在多个项目中使用, 其他项目只需根据规则调
用传参即可访问Elasticsearch取到想要的结
果, 其他项目不用重复写调用Elasticsearch 的
方法, 只需处理自己的业务逻辑, 封装查询参数,
减少了重复代码, 不仅如此, 查询服务统一编写
更易于维护, 减少开发 成本。
权利要求书1页 说明书9页 附图4页
CN 115544057 A
2022.12.30
CN 115544057 A
1.一种搜索服 务的实现方法, 其特 征在于, 该 方法包括如下步骤:
S1、 客户端对用户请求进行封装;
S2、 客户端对封装的查询请求 转换成统一 查询服务可识别的内容;
S3、 所述统一查询服务根据 规则解析查询字段和查询内容, 拼接El asticsearch查询语
句;
S4、 所述统一查询服务将拼接好的所述Elasticsearch查询语句发起HTTP请求, 并将请
求数据返回给客户端。
2.根据权利要求1所述的搜索服务的实现方法, 其特征在于, S1还包括: 用户发起请求
到客户端。
3.根据权利要求2所述的搜索服务的实现方法, 其特征在于, S1具体还包括: 预设输入
的参数以HashMap形式封装, HashMap以键值对(key,value)形式保存, 以对应查询语句的查
询字段对应要查询的内容。
4.根据权利要求1所述的搜索服务的实现方法, 其特征在于, S2还包括: 预设所述统一
查询服务以冒号形式代表(key,value)查询字段和查询内容形式, 以分号分割多组查询字
段。
5.根据权利要求4所述的搜索服务的实现方法, 其特征在于, S2具体还包括: 客户端调
用Elasticsearch的规则, 即客户端不直接调用Elasticsearch, 而是调用所述统一查询服
务dataservice开 放的接口, 由dataservice 再发起查询服务调用Elasticsearc h。
6.根据权利要求1所述的搜索服务的实现方法, 其特征在于, S3还包括: 所述统一查询
服务接收到参数内容后, 解析方法根据输入参数携带的特殊标识来识别应该使用
Elasticsearc h的查询方法, 再转换成java对应的查询Elasticsearc h的语法。
7.根据权利要求6所述的搜索服务的实现方法, 其特征在于, S3还包括: 对多个查询条
件组合拼接。
8.一种搜索服 务的实现系统, 其特 征在于, 包括:
请求模块: 用于用户发起请求到客户端以及所述统一查询服务将拼接好的所述
Elasticsearc h查询语句发起HT TP请求, 并将 请求数据返回给客户端;
封装模块: 用于利用客户端对用户请求进行封装;
转换模块: 用于利用客户端对封装的查询请求 转换成统一 查询服务可识别的内容;
拼接模块: 用于根据所述统一查询服务根据规则解析查询字段和查询内容, 拼接
Elasticsearc h查询语句。
9.一种电子设备, 包括:
一个或多个处 理器;
存储装置, 用于存 储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行, 使得所述一个或多个处理器实
现如权利要求1至7中任一所述的方法。
10.一种计算机可读存储介质, 其上存储有计算机程序, 其特征在于, 该程序被处理器
执行时实现如权利要求1至7中任一所述的方法。权 利 要 求 书 1/1 页
2
CN 115544057 A
2一种搜索服务的实现方 法及其系统
技术领域
[0001]本发明属于大数据搜索的技术领域, 具体涉及一种搜索服务的实现方法及其系
统。
背景技术
[0002]传统软件开 发数据库一般采用mysql,oracle,sqlserver等关系型数据库, 随着时
间推移, 单表数据量越来越大, 伴随数据复杂和业务的复杂, 基于 关系型数据库的查询效果
越来越差, 一个简单的业务包含了大量的数据库连接, 释放等操作, 还有 频繁的I/O操作, 非
常耗时, 导致查询速度慢。 选择使用Elasticsearch来实现搜索功能, 搜索性能基本毫秒级
就可完成, 一般列表页20 0条数据, 基本 38ms~100ms就会完成搜索。
[0003]Elasticsearch是使用java语言并且基于lucence编写的搜索引擎框架, 他提供了
分布式的全文搜索功能, 提供了一个统一的基于restful风格的web接口。 Elasticsearch查
询只要发送一个ht tp请求, 并且根据请求方式的不同, 携带参数的不同, 执 行相应的功能。
[0004]虽然Elasticsearch的查询非常强大, 但是拼接查询语句却很不方便, 尤其是在
java程序开 发的时候, 往往一个复杂查询需要拼接一大串java代码, 这样导致代码非常乱,
并且不好维护, 出了问题也 不好排查。
[0005]有鉴于此, 提出一种搜索服 务的实现方法及其系统是非常具有意 义的。
发明内容
[0006]针对Elasticsearch查询语句不好拼接的问题, 为解决j ava开发中方便快捷的拼
接查询语句以达到动态组合地查询Elasticsearch中的数据, 本发明提供一种搜索服务的
实现方法及其系统, 以解决上述存在的技 术缺陷问题。
[0007]第一方面, 本发明提出了一种搜索服 务的实现方法, 该 方法包括如下步骤:
[0008]S1、 客户端对用户请求进行封装;
[0009]S2、 客户端对封装的查询请求 转换成统一 查询服务可识别的内容;
[0010]S3、 所述统一查询服务根据规则解析查询字段和查询内容, 拼接Elasticsearch查
询语句;
[0011]S4、 所述统一查询服务将拼接好的所述Elasticsearch查询语句发起HTTP请求, 并
将请求数据返回给客户端。
[0012]优选的, S1还 包括: 用户发起请求到客户端。
[0013]进一步优选的, S1具体还包括: 预设输入的参数以HashMap形式封装, HashMap以键
值对(key,value)形式保存, 以对应查询语句的查询字段对应要查询的内容。
[0014]进一步优选的, S2还包括: 预设所述统一查询服务以冒号形式代表(key,value)查
询字段和查询内容形式, 以分号分割多组查询字段。
[0015]进一步优选的, S2具体还包括: 客户端调用Elasticsearch的规则, 即客户端不直
接调用Elasticsearch, 而是调用所述统一查询服务dataservice开放的接口, 由说 明 书 1/9 页
3
CN 115544057 A
3
专利 一种搜索服务的实现方法及其系统
文档预览
中文文档
15 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共15页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 00:49:07上传分享