一种基于二次检索的数据查询方法及系统.pdf

上传人:e2 文档编号:4054790 上传时间:2018-08-13 格式:PDF 页数:8 大小:661.66KB
返回 下载 相关 举报
摘要
申请专利号:

CN201410852530.9

申请日:

2014.12.31

公开号:

CN104516979A

公开日:

2015.04.15

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 17/30申请日:20141231|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

北京锐安科技有限公司

发明人:

唐家伟; 彭满山

地址:

100192北京市海淀区西小口路东升科技园B-2楼7层

优先权:

专利代理机构:

北京君尚知识产权代理事务所(普通合伙)11200

代理人:

余功勋

PDF下载: PDF下载
内容摘要

本发明公开了一种基于二次检索的数据查询方法及系统,本发明为:1)创建一索引模板,当一用户登录客户端进行第一次检索时,为该用户的本次登录生成一批次号,并该批次号和该第一次检索结果保存到中间库服务器中;2)索引服务器根据该索引模板从该第一次检索结果中提取所有可作为查询条件的数据项及拆分规则,创建该批次号的索引;3)当该用户进行二次检索时,从该批次号的索引中读取所有包含该用户所输入二次查询条件的索引数据,然后根据该索引数据从所述中间库服务器中获取检索结果。本发明可以动态重构二次检索查询条件,并通过中间库缓存一次查询结果,这样减少了二次查询时的总数据量,大大的提高了二次检索数据的效率。

权利要求书

权利要求书
1.  一种基于二次检索的数据查询方法,其步骤为:
1)创建一索引模板,当一用户登录客户端进行第一次检索时,为该用户的本次登录生成 一批次号,并该批次号和该第一次检索结果保存到中间库服务器中;
2)索引服务器根据该索引模板从该第一次检索结果中提取所有可作为查询条件的数据 项及拆分规则,创建该批次号的索引;
3)当该用户进行二次检索时,从该批次号的索引中读取所有包含该用户所输入二次查询 条件的索引数据,然后根据该索引数据从所述中间库服务器中获取检索结果。

2.  如权利要求1所述的方法,其特征在于,所述中间库服务器为MongDb数据库;将该第一 次检索结果以BSON的格式存放到所述MongDb数据库中。

3.  如权利要求1或2所述的方法,其特征在于,所述索引服务器为solr服务器;所述第一次 检索结果按照索引中的拆分规则以键值对保存到中间库服务器中。

4.  如权利要求3所述的方法,其特征在于,所述索引数据采用键值对形式保存,其中键 RowKey=查询条件+<分隔符>+DATAID,DATAID为键值数据的唯一标识;键值为第一次检索 结果。

5.  如权利要求4所述的方法,其特征在于,所述键值数据的唯一标识DATAID的信息包括: 时间,客户端编号,地址和流水号。

6.  如权利要求4所述的方法,其特征在于,所述客户端根据所述二次查询条件,从该批次的 索引中读取所有包含该查询条件的键RowKey,然后通过所读取的键RowKey获取DATAID 集合,然后通过DATAID集合从所述中间库服务器中得到检索结果。

7.  一种基于二次检索的数据查询系统,其特征在于,包括通过网络连接的客户端、应用支撑 服务器、中间件服务器、索引服务器和中间库服务器;其中,
所述客户端,用于提供人机交互界面,接收查询条件的录入;
所述应用支撑服务器,用于提供一次检索业务查询接口,封装二次检索查询条件,并 提供二次检索的访问中间库服务器的通用接口;
所述中间件服务器,用于封装一次检索查询数据库的通用接口,控制索引的创建并将 一次查询的结果集导入到中间库服务器,且通过索引文件匹配出可以作为二次查询的索引数 据,生产批次号,保存到中间库服务器中,封装访问中间库服务器的查询接口;
所述索引服务器:根据该索引模板index.xml从该第一次检索结果中提取所有可作为 查询条件的数据项及拆分规则,创建该批次号的索引;
所述中间库服务器,用于保存一次检索的结果集数据,并提供索引查询接口。

8.  如权利要求7所述的系统,其特征在于,所述中间库服务器为MongDb数据库,所述索引 服务器为solr服务器;该第一次检索结果以BSON的格式存放到所述MongDb数据库中。

9.  如权利要求7或8所述的系统,其特征在于,所述索引数据采用键值对形式保存,其中键 RowKey=查询条件+<分隔符>+DATAID,DATAID为键值数据的唯一标识;键值为第一次检索 结果;所述键值数据的唯一标识DATAID的信息包括:时间,客户端编号,地址和流水号。

10.  如权利要求9所述的系统,其特征在于,所述客户端根据所述二次查询条件,从该批次的 索引中读取所有包含该查询条件的键RowKey,然后通过所读取的键RowKey获取DATAID 集合,然后通过DATAID集合从所述中间库服务器中得到检索结果。

说明书

说明书一种基于二次检索的数据查询方法及系统
技术领域
本发明涉及互联网搜索领域,尤其涉及一种基于搜索中二次检索的数据查询方法及系统。
技术背景
随着Internet的快速增长,人们对海量数据的挖掘和运用,预示着新一波生产力和消 费者盈余浪潮的到来,大数据开始引起人们的关注,其数据量远远超越现在企业IT架构和基 础设施的承载能力,实时性要求也将大大超越现在的计算能力,如何从大数据中检索出有价 值的数据,为国家治理、企业决策乃至个人生活服务提供帮助成为人们的议题。
人们越来越多的依赖于搜索引擎来获取有价值的数据,通过关键字搜索,可以返回大量 的结果数据,但是其中大部分数据不是用户需求的范围内,为了检索更为贴切用户需求的数 据,需要二次检索,就是在一次检索结果的基础上,通过特定的条件进行筛选,缩小范围, 获取更为满足用户需求的结果信息。在传统的搜索中,我们会面临2个问题,一是,数据总 量过大,搜索速度慢,且频繁搜索影响服务器性能,二是查询条件比较固定,无法灵活配置。
发明内容
本发明解决的技术问题:本发明的目的是提供一种基于二次检索的数据查询方法,一种 可以动态加载二次检索条件,实现二次检索条件灵活性。采用的方式:在第一次搜索数据, 在返回结果数据的同时,我们通过solr创建索引,并将返回的数据以BSON的格式临时存放 到MongDb数据库中,并通过索引匹配出可以作为查询条件的数据项,并生产批次号保存到中 间库,在进行二次搜索的时候,我们可以通过查询批次号检索查询数据项,动态生成二次搜 索的条件,实现二次查询条件的灵活配置,且在二次搜索时,通过solr创建的索引直接去中 间库中(MongoDB)检索对应的批次数据,这样大大的减少了二次查询数据总量,提高检索效 率,并降低对业务数据库性能影响。
为实现上述目的,本发明的解决方案是:
一种基于二次检索的数据查询方法,其步骤为:
1)创建一索引模板,当一用户登录客户端进行第一次检索时,为该用户的本次登录生成 一批次号,并该批次号和该第一次检索结果保存到中间库服务器中;
2)索引服务器根据该索引模板从该第一次检索结果中提取所有可作为查询条件的数据 项及拆分规则,创建该批次号的索引;
3)当该用户进行二次检索时,从该批次号的索引中读取所有包含该用户所输入二次查询 条件的索引数据,然后根据该索引数据从所述中间库服务器中获取检索结果。
进一步的,所述中间库服务器为MongDb数据库;将该第一次检索结果以BSON的格式 存放到所述MongDb数据库中。
进一步的,所述索引服务器为solr服务器;所述第一次检索结果按照索引中的拆分规则 以键值对保存到中间库服务器中。
进一步的,所述索引数据采用键值对形式保存,其中键RowKey=查询条件+<分隔符 >+DATAID,DATAID为键值数据的唯一标识;键值为第一次检索结果。
进一步的,所述键值数据的唯一标识DATAID的信息包括:时间,客户端编号,地址和流 水号。
进一步的,所述客户端根据所述二次查询条件,从该批次的索引中读取所有包含该查询 条件的键RowKey,然后通过所读取的键RowKey获取DATAID集合,然后通过DATAID集合从 所述中间库服务器中得到检索结果。
一种基于二次检索的数据查询系统,其特征在于,包括通过网络连接的客户端、应用支 撑服务器、中间件服务器、索引服务器和中间库服务器;其中,
所述客户端,用于提供人机交互界面,接收查询条件的录入;
所述应用支撑服务器,用于提供一次检索业务查询接口,封装二次检索查询条件,并提 供二次检索的访问中间库服务器的通用接口;
所述中间件服务器,用于封装一次检索查询数据库的通用接口,控制索引的创建并将一 次查询的结果集导入到中间库服务器,且通过索引文件匹配出可以作为二次查询的索引数据, 生产批次号,保存到中间库服务器中,封装访问中间库服务器的查询接口;
所述索引服务器:根据该索引模板index.xml从该第一次检索结果中提取所有可作为查询 条件的数据项及拆分规则,创建该批次号的索引;
所述中间库服务器,用于保存一次检索的结果集数据,并提供索引查询接口。
进一步的,所述中间库服务器为MongDb数据库,所述索引服务器为solr服务器;该第 一次检索结果以BSON的格式存放到所述MongDb数据库中。
进一步的,所述索引数据采用键值对形式保存,其中键RowKey=查询条件+<分隔符 >+DATAID,DATAID为键值数据的唯一标识;键值为第一次检索结果;所述键值数据的唯一标 识DATAID的信息包括:时间,客户端编号,地址和流水号。
进一步的,所述客户端根据所述二次查询条件,从该批次的索引中读取所有包含该查询 条件的键RowKey,然后通过所读取的键RowKey获取DATAID集合,然后通过DATAID集合从 所述中间库服务器中得到检索结果。
本发明基于二次检索的技术,其系统架构如图2所示,它包括:
a.客户端:即浏览器客户端。用户通过客户端友好的人机交互界面实现对一次、二次搜 索条件的录入。
b.应用支撑服务器:提供一次检索业务查询接口,封装二次检索查询条件,并提供二次 检索的访问中间库服务器的通用接口。
c.中间件服务器:封装一次检索查询数据库的通用接口,控制Solr索引的创建并将一 次查询的结果集导入到中间库,且通过索引文件匹配出可以作为二次查询的数据项,生产批 次号,保存到中间库中,封装访问中间库的查询接口。
d.索引服务器:通过Solr来创建索引,通过http请求,向搜索引擎服务器提交一定格 式的XML文件,生成索引,通过Http Get操作提出查找请求,并得到XML格式的返回结果, 且实现结果的高亮显示。
e.中间库服务器:保存一次检索的结果集数据,并提供索引查询接口。
本发明的二次检索方法包括以下步骤:
a.客户端向Web服务器发一次检索请求,Web服务器响应客户端请求,并向应用支撑服 务器发起查询请求;
b.应用支撑服务器响应Web请求,通过中间件向业务库发起查询请求,检索查询数据, 将查询结果返回给应用支撑服务器,应用支撑服务器再将结果信息反馈给Web服务器,同时 通过Solr服务器创建索引文件,将查询到的结果保存到中间库中;
c.客户端在进行二次检索时,通过Ajax异步请求向web服务器请求加载二次查询条件, web服务器通过中间件调用solr索引,通过批次号读取查询数据项,并请求查询数据项模板, 通过解析查询模板,生成查询条件,并加载到web页面(在加载二次检索条件,先调用查询 模板,检查是否有操作类型的数据项,然后则检测模板中设定的操作类型是否在一次检索时 有结果数据返回,如果有则加载为二次检索条件值。如:一次检索条件包含操作类型10种, 而一次检索的结果数据列表只包含其中3种,那么在加载二次检索条件操作类型时,只会动 态生成3种);
d.输入二次检索查询,发送二次检索请求,web服务向应用支撑服务器发起二次检索请 求,应用支撑调用中间件二次查询接口;
e.中间件响应二次检索,通过solr服务器的索引文件及查询批次号请求中间库服务器, 中间件直接向中间库发起查询请求,请求二次检索数据,然后以高亮的方式展示在web页面 (二次检索不在请求业务库,而是直接请求中间库)。
与现有技术相比,本发明的优点和积极效果:
由于本发明中提出了使用Solr创建索引,使用MongDb作为中间库存储数据的模式,它 提供了一种高效、灵活的缓存功能,垂直搜索功能、高亮显示搜素结果,通过索引复制提供 可用性,可以动态重构二次检索查询条件,并通过中间库缓存一次查询结果,这样减少了二 次查询时的总数据量,大大的提高了二次检索数据的效率。
附图说明
图1二次检索业务流程图;
图2二次检索网络拓扑图示意图。
具体实施方式
图1是二次检索的流程示意图。其中包括客户端、WEB服务器、应用支撑、中间件、中 间库、Solr服务器及业务数据库,本发明实现了大数据量的二次快速检索功能。
其二次检索的业务流程,具体如下:
(1)Web服务器在请求一次查询时,通过查询业务数据库,返回检查结果集展示到页面, 同时通过solr服务器创建索引文件(solr服务器读取索引模板index.xml,提取所有可作为 查询条件的数据项及拆分规则,并检测数据项是否在一次查询范围内,如果是则创建索引, 索引中包含可作为查询条件的字段及字段拆分规则,例如:以IP作为查询条件,索引中会记 录IP标示位,并以IP地址创建索引,其中包含一个RowKey=IP+<分隔符>+DATAID,唯一标 识(DATAID)生成规则:前面10位是时间精确到秒,设备ID 3位,城市ID 6位,流水号6位, 一台设备上全部协议共用一个流水号,DATAID在集群内唯一,以DATAID创建索引时, RowKey=MD5(DATAID[0,2]+DATAID)),然后将一次检索的结果集按照索引中的拆分规则以键 值对保存到中间库mongdb中(键:RowKey值:BSON格式数据)。
(2)客户端在进行二次检索时,通过Ajax异步请求向web服务器请求加载二次查询条 件,web服务器通过中间件调用solr索引,通过批次号从索引文件中读取可作为二次查询的 数据项标示,并请求查询数据项模板,组装成查询条件集合,以Json格式形式返回,通过解 析Json数据,将二次检索查询条件异步加载到web页面。
(3)客户端执行二次检索时,WEB服务器接收处理请求,通过应用支撑封装传递查询请 求条件到中间件服务器,中间件通过接口读取索引文件,并通过二次查询接口直接向中间库 发起查询请求;如:当以IP地址进行二次查询时,通过批次号从索引中读取所有包含IP的 RowKey,通过RowKey获取DATAID集合,然后通过DATAID集合请求中间库,检索结果数据。
(4)中间库服务器接收并响应中间件的查询请求,从中间库中检索数据符合查询请求的 数据并以Json格式返回,最后通过Solr索引中记录的条件标示,将查询条件值及结果列表 以高亮的方式展示在WEB页面。
另外,该系统采用一种非关系型数据库Mong0DB(NoSql)作为中间库缓存数据,其灵活 的存储方式,对大数据量、高并发、弱事务的互联网应用应对自如,其内置水平扩展机制提 供了从百万到十亿级别的数据处理能力;在查询速度方面,通过中间库服务器缓存一次检索 结果数据,大大降低二次检索的数据总量,最大限度的提高了二次检索的效率,使检索结果 更符合需求。在性能方面,使二次检索直接访问中间库,降低对业务数据库的频繁操作,大 大降低业务库的性能损耗。
本发明对中间件、中间库、应用支撑和web服务器的要求是:中间件、中间库、应用支 撑服务器需要通过千兆路由连接,应用支撑与web服务器通过专网或内网连接,中间件服务 器内存建议:32G以上,中间库使用分布式文件系统部署,单个存储TB级以上。

一种基于二次检索的数据查询方法及系统.pdf_第1页
第1页 / 共8页
一种基于二次检索的数据查询方法及系统.pdf_第2页
第2页 / 共8页
一种基于二次检索的数据查询方法及系统.pdf_第3页
第3页 / 共8页
点击查看更多>>
资源描述

《一种基于二次检索的数据查询方法及系统.pdf》由会员分享,可在线阅读,更多相关《一种基于二次检索的数据查询方法及系统.pdf(8页珍藏版)》请在专利查询网上搜索。

本发明公开了一种基于二次检索的数据查询方法及系统,本发明为:1)创建一索引模板,当一用户登录客户端进行第一次检索时,为该用户的本次登录生成一批次号,并该批次号和该第一次检索结果保存到中间库服务器中;2)索引服务器根据该索引模板从该第一次检索结果中提取所有可作为查询条件的数据项及拆分规则,创建该批次号的索引;3)当该用户进行二次检索时,从该批次号的索引中读取所有包含该用户所输入二次查询条件的索引数据。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1