CN103440249A - 一种非结构化数据快速检索的系统及方法 - Google Patents
一种非结构化数据快速检索的系统及方法 Download PDFInfo
- Publication number
- CN103440249A CN103440249A CN2013103087784A CN201310308778A CN103440249A CN 103440249 A CN103440249 A CN 103440249A CN 2013103087784 A CN2013103087784 A CN 2013103087784A CN 201310308778 A CN201310308778 A CN 201310308778A CN 103440249 A CN103440249 A CN 103440249A
- Authority
- CN
- China
- Prior art keywords
- bloom filter
- module
- condition
- data
- participle
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种非结构化数据快速检索的系统及方法,系统包括查询处理模块、查询条件解析模块、大数据存储模块、布隆过滤器过滤模块、索引建立模块和布隆过滤器构建模块。查询处理模块接收应用客户端的查询请求,从查询请求中获取查询条件,调用查询条件解析模块对查询条件进行解析和改造,使用布隆过滤器代替原始查询条件中的分词条件,生成基于布隆过滤器过滤记录标识的新查询条件;通过该条件查询数据记录表;对布隆过滤器及其他查询条件进行测试,并将符合全部查询条件的数据记录作为查询结果,返回给应用客户端。通过本发明的系统及方法,能够更加快速的判断一条数据记录是否符合分词条件,并且消耗更少的资源。
Description
技术领域
本申请属于信息技术领域,尤其涉及一种在大数据量存储中对非结构化数据进行快速检索的系统及方法。
背景技术
随着互联网的快速发展,网页、博客、社交网络、即时通信软件等应用迅速普及,产生了大量的非结构化文本数据,如何对这些文本数据进行快速有效的检索,成为了业界研究的热点。互联网搜索引擎通过对文本数据进行分词操作,建立从分词到文本标识的反向索引,通过这些索引,实现根据分词进行文本检索。虽然通过反向索引能够进行文本数据的检索,但是当用户检索的时候包含多个检索条件,或者检索条件中包含多个检索词的时候,需要进行大量的文本标识的比对工作,对系统资源的消耗比较大,性能较低。
发明内容
本专利申请要解决的技术问题是:提供一种非结构化数据快速检索的系统及方法,能够快速完成文本标识比对,从而更快的检索到符合条件的文本标识,并且消耗较少的系统资源。
为了解决上述技术问题,本专利申请提供了一种非结构化数据快速检索的系统及方法。本申请所述系统包括查询处理模块、查询条件解析模块、大数据存储模块、布隆过滤器过滤模块、索引建立模块和布隆过滤器构建模块。各模块功能如下:
查询处理模块接收应用客户端的查询请求,从查询请求中获取查询条件。
查询条件解析模块实现对查询条件的解析和对查询条件的改造,使用布隆过滤器代替原始查询条件中的分词条件,将客户端查询条件转换成对大数据存储模块中数据记录表的查询条件。
大数据存储模块负责索引数据和记录数据的存储,并根据查询条件对数据进行过滤,返回符合查询条件的数据。大数据存储模块包含反向索引表和数据记录表,反向索引表存储从分词到记录标识的反向索引以及布隆过滤器;数据记录表存储记录数据。其中,记录标识指给每条数据记录分配的唯一ID。
布隆过滤器过滤模块完成使用布隆过滤器快速判断一条记录数据是否满足分词条件的功能。
索引建立模块将分词到记录标识对应关系以及对应的布隆过滤器组合在一起,构成包含布隆过滤器的反向索引数据,存入大数据存储中的反向索引表。
布隆过滤器构建模块完成对每个分词构建布隆过滤器的功能。
本申请所述的一种非结构化数据快速检索的方法为:
A、查询处理模块接收到应用客户端的查询请求以后,从查询请求中获取查询条件,并调用查询条件解析模块,对查询条件进行解析,查询条件解析模块从查询条件中分离出分词条件,形成分词列表:
B、查询条件解析模块通过分词列表,查询大数据存储模块中的反向索引表,获取查询条件中所有分词对应的布隆过滤器;
C、查询条件解析模块结合原始查询条件和每个分词对应的布隆过滤器对原始查询条件进行重构,使用布隆过滤器代替原始查询条件中对应的分词条件,而多个查询条件之间的逻辑关系保持不变,形成基于布隆过滤器的查询条件;
D、查询处理模块使用基于布隆过滤器的查询条件对大数据存储模块中的数据记录表进行查询;大数据存储模块接收到基于布隆过滤器的查询条件以后,调用布隆过滤器过滤模块,使用基于布隆过滤器的查询条件中的布隆过滤器对数据记录中的记录标识进行包含关系测试,测试结果为真,则表明该记录标识包含在布隆过滤器中,进而表明数据符合分词条件,否则不符合;
E、大数据存储模块使用基于布隆过滤器的查询条件中布隆过滤器条件以外的其他查询条件对数据记录进行测试,如果数据记录符合这些查询条件,则测试结果为真,否则测试结果为假;
F、结合步骤D中布隆过滤器测试结果以及步骤E中其他查询条件的测试结果,按照原有的逻辑关系进行组合运算,根据运算结果判断数据记录是否符合全部的查询条件,并将符合条件的数据记录作为查询结果,返回给查询处理模块,由查询处理模块返回给应用客户端。
本专利申请的有益效果:
1、通过本专利申请,在文本标识比对的时候,只需要获取布隆过滤器,而不需要获取分词对应的文本标识,因此读取的数据量更少更集中,对于系统磁盘的读写压力更小;
2、通常的检索方法需要在查询条件中存储并传输大量的文本标识,而本专利申请中,只需要存储布隆过滤器,因此对于内存和网络读写的消耗更少;
3、本专利申请采用少量的位比对取代了字符串比对,因此消耗的计算资源更少,速度更快。
附图说明
附图1为本专利申请的模块分布图
附图2为查询处理流程图
具体实施方式
本专利申请所述的一种非结构化数据快速检索的系统,其模块分布情况如附图1所示,包括查询处理模块、查询条件解析模块、大数据存储模块、布隆过滤器过滤模块、索引建立模块和布隆过滤器构建模块。
大数据存储模块包含反向索引表和数据记录表。反向索引表的数据更新步骤包括:
1、索引建立模块接收每条数据记录包含的所有分词条件,使用反向索引构建的方法生成从分词到记录标识的对应关系数据;
2、将对应关系数据发送给布隆过滤器构建模块,生成布隆过滤器;布隆过滤器的长度和包含该分词的数据记录个数成正比;使用该分词对应的每个记录标识构建出布隆过滤器的键值,并将所有的键值加入到布隆过滤器中;键值的构建方法可以采用业界常规构建方法,在此不再赘述;
3、将分词到记录标识对应关系以及对应的布隆过滤器组合在一起,构成包含布隆过滤器的反向索引数据,存入大数据存储中的反向索引表。
本专利申请所述的一种非结构化数据快速检索的方法,查询处理流程如附图2所示,具体包括如下步骤:
1、查询处理模块接收应用客户端的查询请求,从查询请求中获取查询条件,调用查询条件解析模块;
2、查询条件解析模块对查询条件进行解析。具体包括:
2.1查询条件解析模块首先分析查询条件,从查询条件中分离出包含的分词条件,形成分词列表,分词列表中的分词条件不重复;
2.2根据分词列表,查询大数据存储模块中分词到记录标识的反向索引表,获取所有分词条件对应的布隆过滤器。
3、查询条件解析模块对原始查询条件进行重构,使用布隆过滤器代替原始查询条件中的分词条件,而多个查询条件之间的逻辑关系保持不变,生成基于布隆过滤器的新查询条件;
4、查询处理模块使用基于布隆过滤器的查询条件对大数据存储模块中的数据记录表进行查询,大数据存储模块调用布隆过滤器过滤模块,使用基于布隆过滤器的查询条件中的布隆过滤器对数据记录中的记录标识进行包含性测试,测试结果为真,则表明数据可能符合分词条件,否则不符合。具体测试方法为:
布隆过滤器包含N(N>=1)个哈希散列函数,同时包含一个位向量。对键值进行测试的时候,使用哈希散列函数对键值进行散列,会得到N个哈希散列值;判断位向量中,和这N个哈希散列值对应的位置的值是1还是0,如果全部都是1,则测试通过,数据符合分词条件,否则不符合。
较佳的,在查询出布隆过滤器的同时,查询出分词对应的所有记录标识,在布隆过滤器测试结果为真的情况下进一步通过记录标识比对来确定记录标识是否真正符合条件,可以有效避免布隆过滤器误中的情况。
5、大数据存储模块使用查询条件中布隆过滤器以外的其他查询条件对数据记录进行测试,例如查询条件中,性别=’男’,则判断数据记录中‘性别’这一属性是否等于’男’,如果是,则测试结果为真,否则测试结果为假。
6、大数据存储模块结合步骤4中布隆过滤器的测试结果和步骤5中其他查询条件的测试结果按照原有的逻辑关系进行组合运算,根据运算结果判断数据记录是否符合全部的查询条件。例如:有’记录1’这样一条记录数据,基于布隆过滤器的查询条件为:(’布隆过滤器1’并且‘性别’=’男’),’布隆过滤器1’对于’记录1’的测试结果为’真’,同时’记录1’中’性别’属性等于’男’,则组合运算结果为真,表明’记录1’满足全部查询条件。之后,大数据存储模块将符合条件的数据记录作为查询结果,返回给查询处理模块,并由查询处理模块返回给应用客户端。
以上实施方案的说明只适用于帮助理解本专利申请的原理,同时对本领域的一般技术人员,依据本专利申请实施例,在具体实施方式以及应用范围上均会有改变之处,因此本说明书内容不应理解为对本专利申请的限制。
Claims (5)
1.一种非结构化数据快速检索的系统,其特征在于:包括查询处理模块、查询条件解析模块、大数据存储模块、布隆过滤器过滤模块、索引建立模块和布隆过滤器构建模块。
2.一种非结构化数据快速检索的方法,其特征在于,包括如下步骤:
A、查询处理模块接收到应用客户端的查询请求以后,从查询请求中获取查询条件,并调用查询条件解析模块,对查询条件进行解析,查询条件解析模块从查询条件中分离出分词条件,形成分词列表;
B、查询条件解析模块通过分词列表,查询大数据存储模块中的反向索引表,获取查询条件中所有分词对应的布隆过滤器;
C、查询条件解析模块结合原始查询条件和每个分词对应的布隆过滤器对原始查询条件进行重构,使用布隆过滤器代替原始查询条件中对应的分词条件,而多个查询条件之间的逻辑关系保持不变,形成基于布隆过滤器的查询条件;
D、查询处理模块使用基于布隆过滤器的查询条件对大数据存储模块中的数据记录表进行查询;大数据存储模块接收到基于布隆过滤器的查询条件以后,调用布隆过滤器过滤模块,使用基于布隆过滤器的查询条件中的布隆过滤器对数据记录中的记录标识进行包含关系测试,测试结果为真,则表明该记录标识包含在布隆过滤器中,进而表明数据符合分词条件,否则不符合;
E、大数据存储模块使用基于布隆过滤器的查询条件中布隆过滤器条件以外的其他查询条件对数据记录进行测试,如果数据记录符合这些查询条件,则测试结果为真,否则测试结果为假;
F、结合步骤D中布隆过滤器测试结果以及步骤E中其他查询条件的测试结果,按照原有的逻辑关系进行组合运算,根据运算结果判断数据记录是否符合全部的查询条件,并将符合条件的数据记录作为查询结果,返回给查询处理模块,由查询处理模块返回给应用客户端。
3.如权利要求2所述的一种非结构化数据快速检索的方法,其特征在于,所述步骤B中的反向索引表的数据更新过程如下:
B1、索引建立模块接收每条数据记录包含的所有分词条件,使用反向索引构建的方法生成从分词到记录标识的对应关系数据;
B2、将对应关系数据发送给布隆过滤器构建模块,生成分词对应的布隆过滤器;
B3、将分词到记录标识对应关系以及对应的布隆过滤器组合在一起,构成包含布隆过滤器的反向索引数据,存入大数据存储中的反向索引表。
4.如权利要求3所述的一种非结构化数据快速检索的方法,其特征在于:所述步骤B2中的布隆过滤器的长度和包含该分词的数据记录个数成正比:使用该分词对应的每个记录标识构建出布隆过滤器的键值,并将所有的键值加入到对应的布隆过滤器中。
5.如权利要求2所述的一种非结构化数据快速检索的方法,其特征在于,所述步骤D进一步包括:在查询出布隆过滤器的同时,查询出分词对应的所有记录标识,在布隆过滤器测试结果为真的情况下进一步通过记录标识比对来确定记录标识是否真正符合条件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013103087784A CN103440249A (zh) | 2013-07-23 | 2013-07-23 | 一种非结构化数据快速检索的系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013103087784A CN103440249A (zh) | 2013-07-23 | 2013-07-23 | 一种非结构化数据快速检索的系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103440249A true CN103440249A (zh) | 2013-12-11 |
Family
ID=49693940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013103087784A Pending CN103440249A (zh) | 2013-07-23 | 2013-07-23 | 一种非结构化数据快速检索的系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103440249A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473324A (zh) * | 2013-09-13 | 2013-12-25 | 国家电网公司 | 基于非结构化数据存储的多维业务属性检索装置及方法 |
CN104850564A (zh) * | 2014-02-18 | 2015-08-19 | 腾讯科技(深圳)有限公司 | 数据文件的索引查找方法和系统 |
CN105701018A (zh) * | 2014-11-24 | 2016-06-22 | 阿里巴巴集团控股有限公司 | 一种用于流计算的数据处理方法与设备 |
CN105718455A (zh) * | 2014-12-01 | 2016-06-29 | 阿里巴巴集团控股有限公司 | 一种数据查询方法及装置 |
CN106383830A (zh) * | 2016-08-23 | 2017-02-08 | 浙江宇视科技有限公司 | 一种数据检索方法及设备 |
CN106469225A (zh) * | 2016-09-28 | 2017-03-01 | 厦门嵘拓物联科技有限公司 | 一种智能车间管理中海量制造数据访问的方法 |
CN110516127A (zh) * | 2019-08-28 | 2019-11-29 | 百度在线网络技术(北京)有限公司 | 多需求搜索请求的划分方法、装置、电子设备及存储介质 |
CN111767364A (zh) * | 2019-03-26 | 2020-10-13 | 钉钉控股(开曼)有限公司 | 数据处理方法、装置和设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101398820A (zh) * | 2007-09-24 | 2009-04-01 | 北京启明星辰信息技术有限公司 | 一种大规模关键词匹配方法 |
CN102110171A (zh) * | 2011-03-22 | 2011-06-29 | 湖南大学 | 基于树形结构的布鲁姆过滤器的查询与更新方法 |
CN102195866A (zh) * | 2010-03-03 | 2011-09-21 | 梨花女子大学校产学协力团 | 利用布隆滤波器的数据包分类方法及数据包分类装置 |
JP2011186954A (ja) * | 2010-03-10 | 2011-09-22 | Fujitsu Ltd | データ管理装置及びデータ管理方法 |
CN102473084A (zh) * | 2009-07-14 | 2012-05-23 | 高通股份有限公司 | 用于在分布式网络中高效处理多关键字查询的方法和装置 |
CN102542052A (zh) * | 2010-12-29 | 2012-07-04 | 微软公司 | 优先散列索引 |
CN102782643A (zh) * | 2010-03-10 | 2012-11-14 | Emc公司 | 使用布隆过滤器的索引搜索 |
-
2013
- 2013-07-23 CN CN2013103087784A patent/CN103440249A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101398820A (zh) * | 2007-09-24 | 2009-04-01 | 北京启明星辰信息技术有限公司 | 一种大规模关键词匹配方法 |
CN102473084A (zh) * | 2009-07-14 | 2012-05-23 | 高通股份有限公司 | 用于在分布式网络中高效处理多关键字查询的方法和装置 |
CN102195866A (zh) * | 2010-03-03 | 2011-09-21 | 梨花女子大学校产学协力团 | 利用布隆滤波器的数据包分类方法及数据包分类装置 |
JP2011186954A (ja) * | 2010-03-10 | 2011-09-22 | Fujitsu Ltd | データ管理装置及びデータ管理方法 |
CN102782643A (zh) * | 2010-03-10 | 2012-11-14 | Emc公司 | 使用布隆过滤器的索引搜索 |
CN102542052A (zh) * | 2010-12-29 | 2012-07-04 | 微软公司 | 优先散列索引 |
CN102110171A (zh) * | 2011-03-22 | 2011-06-29 | 湖南大学 | 基于树形结构的布鲁姆过滤器的查询与更新方法 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473324A (zh) * | 2013-09-13 | 2013-12-25 | 国家电网公司 | 基于非结构化数据存储的多维业务属性检索装置及方法 |
CN104850564A (zh) * | 2014-02-18 | 2015-08-19 | 腾讯科技(深圳)有限公司 | 数据文件的索引查找方法和系统 |
CN104850564B (zh) * | 2014-02-18 | 2019-07-05 | 腾讯科技(深圳)有限公司 | 数据文件的索引查找方法和系统 |
CN105701018B (zh) * | 2014-11-24 | 2019-01-11 | 阿里巴巴集团控股有限公司 | 一种用于流计算的数据处理方法与设备 |
CN105701018A (zh) * | 2014-11-24 | 2016-06-22 | 阿里巴巴集团控股有限公司 | 一种用于流计算的数据处理方法与设备 |
CN105718455A (zh) * | 2014-12-01 | 2016-06-29 | 阿里巴巴集团控股有限公司 | 一种数据查询方法及装置 |
CN105718455B (zh) * | 2014-12-01 | 2019-06-14 | 阿里巴巴集团控股有限公司 | 一种数据查询方法及装置 |
CN106383830A (zh) * | 2016-08-23 | 2017-02-08 | 浙江宇视科技有限公司 | 一种数据检索方法及设备 |
CN106383830B (zh) * | 2016-08-23 | 2020-07-28 | 浙江宇视科技有限公司 | 一种数据检索方法及设备 |
CN106469225A (zh) * | 2016-09-28 | 2017-03-01 | 厦门嵘拓物联科技有限公司 | 一种智能车间管理中海量制造数据访问的方法 |
CN106469225B (zh) * | 2016-09-28 | 2019-04-16 | 厦门嵘拓物联科技有限公司 | 一种智能车间管理中海量制造数据访问的方法 |
CN111767364A (zh) * | 2019-03-26 | 2020-10-13 | 钉钉控股(开曼)有限公司 | 数据处理方法、装置和设备 |
CN111767364B (zh) * | 2019-03-26 | 2023-12-29 | 钉钉控股(开曼)有限公司 | 数据处理方法、装置和设备 |
CN110516127A (zh) * | 2019-08-28 | 2019-11-29 | 百度在线网络技术(北京)有限公司 | 多需求搜索请求的划分方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103440249A (zh) | 一种非结构化数据快速检索的系统及方法 | |
CN103631909B (zh) | 对大规模结构化和非结构化数据联合处理的系统及方法 | |
CN103714134B (zh) | 一种网络流量数据索引方法及系统 | |
CN106528847A (zh) | 一种海量数据的多维度处理方法及系统 | |
CN106933833B (zh) | 一种基于空间索引技术的位置信息快速查询方法 | |
CN103092867B (zh) | 一种数据管理方法及系统、数据分析装置 | |
US9135630B2 (en) | Systems and methods for large-scale link analysis | |
CN109117440B (zh) | 一种元数据信息获取方法、系统和计算机可读存储介质 | |
CN103840969A (zh) | 云计算系统中告警日志的管理方法和系统 | |
CN108319608A (zh) | 访问日志存储查询的方法、装置及系统 | |
CN105069101A (zh) | 分布式索引构建及检索方法 | |
CN102169491A (zh) | 一种多数据集中重复记录动态检测方法 | |
CN101963993B (zh) | 一种数据库单表记录快速查找的方法 | |
CN103218396B (zh) | 根据访问频次特征生成静态网页的调度运行可视化分析方法 | |
CN102831174B (zh) | 结构化信息快速检索方法及系统 | |
CN114064707A (zh) | 一种用于数据虚拟化服务器的数据查询方法、装置及存储介质 | |
CN107341198B (zh) | 一种基于主题实例的电力海量数据存储和查询方法 | |
CN111797095B (zh) | 索引构建方法和json数据查询方法 | |
CN108536853A (zh) | 一种基于查询资源与精确度的自动路由数据库查询系统及方法 | |
CN105005619A (zh) | 一种海量网站基础信息的快速检索方法和系统 | |
Chen et al. | Big data generation and acquisition | |
US8805820B1 (en) | Systems and methods for facilitating searches involving multiple indexes | |
CN102622354B (zh) | 一种基于特征向量的聚合数据快速查找方法 | |
US11645283B2 (en) | Predictive query processing | |
CN109101595A (zh) | 一种信息查询方法、装置、设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20131211 |