CN104391908A - 一种图上基于局部敏感哈希的多关键字索引方法 - Google Patents
一种图上基于局部敏感哈希的多关键字索引方法 Download PDFInfo
- Publication number
- CN104391908A CN104391908A CN201410655506.6A CN201410655506A CN104391908A CN 104391908 A CN104391908 A CN 104391908A CN 201410655506 A CN201410655506 A CN 201410655506A CN 104391908 A CN104391908 A CN 104391908A
- Authority
- CN
- China
- Prior art keywords
- gram
- bit string
- hash
- inquiry
- key word
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种图上基于局部敏感哈希的多关键字索引方法,属于图数据(graph data)管理技术领域,该方法是双层索引来支持图上的多关键字查询。若干图根据顶点关键字在n-gram空间聚类后,根据聚簇结构构建上层的位图和下层的局部敏感哈希表:上层的位图根据关键字包含的粗粒度的n-gram(n个连续字母构成的字符串)实现图到类簇的映射;下层的每个类簇对应一个局部敏感哈希表,哈希表的桶中包含细粒度的n-gram对应的候选图。该索引具有如下优势:(1)查询I/O和关键字个数独立,显著减少多关键字查询的I/O次数,加快查询速度;(2)不同粒度的n-gram相结合,有效避免索引对拼写错误敏感,提高了概率返回期望的结果。
Description
技术领域
本发明涉及一种图上基于局部敏感哈希的多关键字索引方法,属于图数据管理技术领域。
背景技术
近年来,万维网、社会网络、生物医学、化合物分子结构等领域积累了大量关联复杂的数据,其结构通常抽象为图。为了实现信息获取和分析,图上的关键字查询是一个基本问题。目前图上关键字查询存在以下问题:(1)由于图数据关系复杂,查询分析时经常涉及多个关键字。目前图关键字索引主要基于倒排表及其变体,要依次读取每个(对)关键字对应的候选图,I/O随着关键字个数线性增长,查询效率不高;(2)图数据的索引常假定数据及查询精确且完整,实际无论是图数据还是用户查询,经常会有个别字母拼写错误,这时无法利用索引得到查询结果。
有两种支持图关键字查询的方案,一种方案将图的顶点和边作为记录存储到关系数据库,利用多表连接获得查询结果。Banks是第28届国际大数据库会议(International Conference on Very Large Data Bases,VLDB)上《BANKS:Browsing and keyword searching in relational databases》提出的系统,该系统利用关系数据库的多表连接实现关键字检索和浏览。DBXplorer是第18届国际数据工程(International Conference on Data Engineering,ICDE)会议《DBXplorer:A system for keyword-based search over relationaldatabases》提出的支持图关键字查询的系统,该系统提供图形界面,用户交互式地对图结构数据进行关键字查询。另外一种方案直接在图上建索引实现关键字查询支持。EASE是《Information Systems》杂志第36卷第2期提出的一种支持图结构数据的通用索引,它分别将关系表、文档和XML元素当作图的顶点,将主外键、IDERF和超链接当作图的边,构建倒排表支持关键字查询。2007年SIGMOD会议上,《BLINKS:Ranked Keyword Searches on Graphs》一文提出Blinks双层索引,通过块索引(block index)和块内索引(intra-block index)支持图上的关键字查询。专利《基于Datalog的分布式环境下大图数据查询方法》(申请号CN201210210245,公开号CN102799624A)的发明设计了一种基于Datalog的分布式环境下大图数据查询方法,它利用等价规则和统计数据,提高大图查询执行计划的效率。专利《一种基于邻接节点树的网络图索引方法》(申请号:CN201210063543,公开号:CN102662974B)公开了一种在大型网络图中基于邻接节点树的子图查询方法,该发明利用节点间的邻接关系构建索引树,并以邻接节点树作为大型网络图的索引特征实现子图查询。但这些工作未涉及如何减少多关键字查询I/O的问题。
局部敏感哈希(Locality Sensitive Hashing,LSH)是一种解决近似查询的有效技术,其基本思想是把相似的数据对象以高的概率哈希到相同桶中,非相似的数据对象几乎不被哈希到相同的桶中。查询时,把冲突桶中的数据对象作为候选集。针对不同应用需求和相似性度量,目前提出了多种哈希技术。针对高维数据的余弦相似度计算,文献《Compact projection:Simple and efficientnear neighbor search with practical memory requirements》(Proc.of theIEEE Computer Society Conf.on Computer Vision and Pattern Recognition,San Francisco:IEEE Computer Society,2010:3477-3484)提出了随机投影敏感哈希函数族。对基于集合的雅可比相似度,文献《On the resemblance andcontainment of documents》(Proc.of the 1997 International Conferenceon Compression and Complexity of Sequences.Positano:IEEE ComputerSociety,1997:21-29)提出了最小哈希(Min-Hash)技术,用于近似计算集合数据的相似度。专利《基于加权编辑距离的模糊关键字查询方法及系统》(申请号:CN201010240402,公开号:CN101916263B)设计了一种基于加权编辑距离的模糊关键字查询方法,可以更有效地返回用户真实查询的数据,提高用户的满意度。但目前缺少如何应用局部敏感哈希解决图上的多关键字查询的工作。
以上两个方面的工作没有涉及如何有效地支持多关键字查询,减少磁盘I/O的问题,也没有涉及查询时对关键字拼写错误过分敏感的问题。而本发明能够很好地解决上面的问题。
发明内容
本发明目的在于提供了一种图上基于局部敏感哈希的多关键字索引方法,该方法支持图上的多关键字查询,并且该方法解决了关键字容错、位图和局部敏感哈希相结合的双层索引问题。
本发明解决其技术问题所采取的技术方案是:本发明提供了一种图上基于局部敏感哈希的多关键字索引方法,该方法支持图关键字查询的、基于粗粒度n-gram(即:n个连续字母构成的字符串)的位图索引,图经过聚类后,每个类簇用一个粗粒度的n-gram位串来表征,查询时,根据关键字的粗粒度位串和类簇位图的匹配结果识别候选类簇,包括以下三个步骤:
步骤1:类簇位图表示;根据图顶点包含的关键字,将所有图映射到一个粗粒度的n-gram空间,如果n-gram空间共有N个不同的n-gram,每个类簇对应一个长度为n的位串,类簇对应的关键字如果包含第i个n-gram,则位串对应的位为1,否则为0,所有类簇的位串构成位图,记为BT;
步骤2:查询位串表示;根据步骤1的n-gram空间,构建多关键字查询位串Q,查询的关键字包含某个n-gram,则查询位串对应的位为1,否则为0;
步骤3:类簇匹配;如果位图BT中某个位串恰好涵盖查询位串Q中所有为1的位,则该位串的对应类簇是候选类簇。
本发明的磁盘访问次数独立于关键字个数,有效减少了磁盘I/O,使用该索引分成以下两个步骤:
步骤1:哈希索引构建;在一个类簇中,给定图的所有关键字组合{CM1,…,CMi,…,CMn},一个关键字组合CMi=(w1,…,wj,…,wm),wj代表关键字,设CMi对应的细粒度n-gram集合记为NG(CMi)=(g1,…,gj,…,gM),gj是一个细粒度的n-gram;给定一个局部敏感哈希函数族的k个哈希函数{h1,…,hj,…,hk},每个哈希函数hj对应一个哈希表Tj,每个哈希函数hj作用于NG(CMi)的M个n-gram上,计算出哈希值,将CMi对应的图存储到TJ相应桶中;
步骤2:查询关键字匹配;在细粒度的n-gram空间,查询Q的多个关键字表征为NG(Q)={q1,…,qj,…,qn},qj代表一个细粒度的n-gram,根据步骤1的k个哈希函数{h1,…,hj,…,hk},将Q分别映射到k张哈希表T1,…,Tj,…,Tk上,在冲突的桶上获取匹配图。
本发明应用于关联复杂数据,如链接的Web网页、社会网络、蛋白质交互网络等图结构数据的存储和查询。
有益效果:
1、本发明查询I/O次数和关键字个数独立,避免了I/O随关键字个数线性增长,提高了查询效率。
2、本发明能够对关键字容错,即便图顶点或查询关键字有拼写错误,仍以高的概率返回候选匹配图。
附图说明
图1本发明的方法流程图。
图2为本发明的类簇和对应关键字示例图。
图3为本发明的双层索引示例图。
图4查询时的哈希过程示例图。
具体实施方式
下面结合说明书附图,对本发明的优选实施例进行详细描述。
如图1所示,本发明提供了一种图上基于局部敏感哈希的多关键字索引方法,该方法支持图关键字查询的、基于粗粒度n-gram(即:n个连续字母构成的字符串)的位图索引,图经过聚类后,每个类簇用一个粗粒度的n-gram位串来表征,查询时,根据关键字的粗粒度位串和类簇位图的匹配结果识别候选类簇,包括以下三个步骤:
步骤1:类簇位图表示;根据图顶点包含的关键字,将所有图映射到一个粗粒度的n-gram空间,如果n-gram空间共有N个不同的n-gram,每个类簇对应一个长度为n的位串,类簇对应的关键字如果包含第i个n-gram,则位串对应的位为1,否则为0,所有类簇的位串构成位图,记为BT;
步骤2:查询位串表示;根据步骤1的n-gram空间,构建多关键字查询位串Q,查询的关键字包含某个n-gram,则查询位串对应的位为1,否则为0;
步骤3:类簇匹配;如果位图BT中某个位串恰好涵盖查询位串Q中所有为1的位,则该位串的对应类簇是候选类簇。
本发明的磁盘访问次数独立于关键字个数,有效减少了磁盘I/O,使用该索引分成以下两个步骤:
步骤1:哈希索引构建;在一个类簇中,给定图的所有关键字组合{CM1,…,CMi,…,CMn},一个关键字组合CMi=(w1,…,wj,…,wm),wj代表关键字,设CMi对应的细粒度n-gram集合记为NG(CMi)=(g1,…,gj,…,gM),gj是一个细粒度的n-gram;给定一个局部敏感哈希函数族的k个哈希函数{h1,…,hj,…,hk},每个哈希函数hj对应一个哈希表Tj,每个哈希函数hj作用于NG(CMi)的M个n-gram上,计算出哈希值,将CMi对应的图存储到TJ相应桶中;
步骤2:查询关键字匹配;在细粒度的n-gram空间,查询Q的多个关键字表征为NG(Q)={q1,…,qj,…,qn},qj代表一个细粒度的n-gram,根据步骤1的k个哈希函数{h1,…,hj,…,hk},将Q分别映射到k张哈希表T1,…,Tj,…,Tk上,在冲突的桶上获取匹配图。
本发明应用于关联复杂数据,如链接的Web网页、社会网络、蛋白质交互网络等图结构数据的存储和查询。
如图2所示,本发明假设共有6张图结构数据G1、G2、G3、G4、G5和G6,其包含的关键字分别是kw(G1)={operating system,process,task schedule,realtime},kw(G2)={operating system,process,batch processing},kw(G3)={database,bigdata,query,cloud computing},kw(G4)={data,query,cloud computing},kw(G5)={graph database,data,query,rdf data}和kw(G6)={relation model,data,query,rdf data},被分成两个类簇,C1={G1G2}和C2={G3G4G5G6}。
根据上述数据,构建如图3所示的双层索引:上层是位图索引(本例子以2-gram为粗粒度n-gram),如果C1对应的单元格为1,表示C1中关键字包含该2-gram,例如’op’,’pe’,’er’,’ra’等;如果C1对应的单元格为0,表示C1中关键字不包含该2-gram,例如’qu’,’ue’,’er’和’ry’等;下层是局部敏感哈希索引,假定有k个哈希函数,则每个类簇内部有k张哈希表,不妨记为T1,…,Tk。
设哈希表取3-gram作为细粒度的n-gram(注意:哈希表的n-gram要长于上层位图采用的n-gram),下面以局部敏感哈希函数h1为例,介绍哈希表T1的构建过程:(1)将一张图的一个关键字组合的每个关键字取其所有的3-gram,将这个关键字组合的所有3-gram当作一个集合;(2)对集合中每个3-gram,计算其模值,模值=(每个字符对应ASCII码的和)mod 10;(3)取最小模值作为最终的哈希函数值,根据此哈希值将图映射到对应的桶中。据此可以创建第一张哈希表T1,如图4所示意。
给定多关键字查询Q={query,database,rdf},根据哈希函数h1,查询结果的计算过程如下:
(1)计算Q的所有3-gram,记为:
NG(Q)={que,uer,ery,dat,ata,tab,aba,bas,ase,rdf};
(2)根据哈希函数h1计算NG(Q)中每个3-gram的对应模值,即{7,5,4,3,4,8,9,6,5,6},可知最小模值是3,这就是最终的哈希函数值。
(3)根据哈希函数值,将图映射到哈希表T1对应的第4个桶(桶编号为3),取候选图G5和G6。
Claims (4)
1.一种图上基于局部敏感哈希的多关键字索引方法,其特征在于:所述方法的图经过聚类后,每个类簇用一个粗粒度的n-gram位串来表征,查询时,根据关键字的粗粒度位串和类簇位图的匹配结果识别候选类簇,包括如下步骤:
步骤1:类簇位图表示;
根据图顶点包含的关键字,将所有图映射到一个粗粒度的n-gram空间,如果n-gram空间共有N个不同的n-gram,每个类簇对应一个长度为n的位串,类簇对应的关键字如果包含第i个n-gram,则位串对应的位为1,否则为0,所有类簇的位串构成位图,记为BT;
步骤2:查询位串表示;
根据上述步骤1的n-gram空间,构建多关键字查询位串Q,查询的关键字包含某个n-gram,则查询位串对应的位为1,否则为0;
步骤3:类簇匹配;
如果位图BT中某个位串恰好涵盖查询位串Q中所有为1的位,则该位串的对应类簇是候选类簇。
2.根据权利要求1所述的一种图上基于局部敏感哈希的多关键字索引方法,其特征在于,所述方法的磁盘访问次数独立于关键字个数,减少磁盘I/O;使用所述索引包括如下步骤:
步骤1:哈希索引构建;在一个类簇中,给定图的所有关键字组合{CM1,…,CMi,…,CMn},一个关键字组合CMi=(w1,…,wj,…,wm),wj代表关键字,设CMi对应的细粒度n-gram集合记为NG(CMi)=(g1,…,gj,…,gM),gj是一个细粒度的n-gram;给定一个局部敏感哈希函数族的k个哈希函数{h1,…,hj,…,hk},每个哈希函数hj对应一个哈希表Tj,每个哈希函数hj作用于NG(CMi)的M个n-gram上,计算出哈希值,将CMi对应的图存储到TJ相应桶中;
步骤2:查询关键字匹配;在细粒度的n-gram空间,查询Q的多个关键字表征为NG(Q)={q1,…,qj,…,qn},qj代表一个细粒度的n-gram,根据步骤1的k个哈希函数{h1,…,hj,…,hk},将Q分别映射到k张哈希表T1,…,Tj,…,Tk上,在冲突的桶上获取匹配图。
3.根据权利要求1所述的一种图上基于局部敏感哈希的多关键字索引方法,其特征在于:所述方法支持图关键字查询,基于粗粒度n-gram,即:n个连续字母构成的字符串的位图索引。
4.根据权利要求1所述的一种图上基于局部敏感哈希的多关键字索引方法,其特征在于:所述方法应用于关联复杂数据,即:链接的Web网页、社会网络、蛋白质交互网络的图结构数据的存储和查询。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410655506.6A CN104391908B (zh) | 2014-11-17 | 2014-11-17 | 一种图上基于局部敏感哈希的多关键字索引方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410655506.6A CN104391908B (zh) | 2014-11-17 | 2014-11-17 | 一种图上基于局部敏感哈希的多关键字索引方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104391908A true CN104391908A (zh) | 2015-03-04 |
CN104391908B CN104391908B (zh) | 2019-03-05 |
Family
ID=52609812
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410655506.6A Active CN104391908B (zh) | 2014-11-17 | 2014-11-17 | 一种图上基于局部敏感哈希的多关键字索引方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104391908B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105975488A (zh) * | 2016-04-25 | 2016-09-28 | 哈尔滨工程大学 | 一种关系数据库中基于主题类簇单元的关键词查询方法 |
CN110046268A (zh) * | 2016-02-05 | 2019-07-23 | 大连大学 | 建立基于倒排位置敏感哈希索引的高维空间kNN查询方法 |
US10778707B1 (en) | 2016-05-12 | 2020-09-15 | Amazon Technologies, Inc. | Outlier detection for streaming data using locality sensitive hashing |
CN111868710A (zh) * | 2018-03-01 | 2020-10-30 | 华为技术加拿大有限公司 | 搜索大规模非结构化数据的随机提取森林索引结构 |
CN112988754A (zh) * | 2021-04-08 | 2021-06-18 | 中煤科工集团重庆研究院有限公司 | 一种面向数据集成的快速查询方法 |
CN113407370A (zh) * | 2020-03-16 | 2021-09-17 | 中国移动通信有限公司研究院 | 根因错误的聚类方法、装置、设备及计算机可读存储介质 |
CN115587116A (zh) * | 2022-12-13 | 2023-01-10 | 北京安普诺信息技术有限公司 | 快速查询同构子图的方法、装置、电子设备及存储介质 |
CN111868710B (zh) * | 2018-03-01 | 2024-05-14 | 华为技术加拿大有限公司 | 搜索大规模非结构化数据的随机提取森林索引结构 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063474A (zh) * | 2010-12-16 | 2011-05-18 | 西北工业大学 | 基于语义相关的XML关键字top-k查询方法 |
CN103455531A (zh) * | 2013-02-01 | 2013-12-18 | 深圳信息职业技术学院 | 一种支持高维数据实时有偏查询的并行索引方法 |
CN103514263A (zh) * | 2013-08-21 | 2014-01-15 | 中国传媒大学 | 一种采用双key值的高维索引结构构建方法和检索方法 |
-
2014
- 2014-11-17 CN CN201410655506.6A patent/CN104391908B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063474A (zh) * | 2010-12-16 | 2011-05-18 | 西北工业大学 | 基于语义相关的XML关键字top-k查询方法 |
CN103455531A (zh) * | 2013-02-01 | 2013-12-18 | 深圳信息职业技术学院 | 一种支持高维数据实时有偏查询的并行索引方法 |
CN103514263A (zh) * | 2013-08-21 | 2014-01-15 | 中国传媒大学 | 一种采用双key值的高维索引结构构建方法和检索方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110046268A (zh) * | 2016-02-05 | 2019-07-23 | 大连大学 | 建立基于倒排位置敏感哈希索引的高维空间kNN查询方法 |
CN110046268B (zh) * | 2016-02-05 | 2024-04-05 | 大连大学 | 建立基于倒排位置敏感哈希索引的高维空间kNN查询方法 |
CN105975488A (zh) * | 2016-04-25 | 2016-09-28 | 哈尔滨工程大学 | 一种关系数据库中基于主题类簇单元的关键词查询方法 |
CN105975488B (zh) * | 2016-04-25 | 2019-06-18 | 哈尔滨工程大学 | 一种关系数据库中基于主题类簇单元的关键词查询方法 |
US10778707B1 (en) | 2016-05-12 | 2020-09-15 | Amazon Technologies, Inc. | Outlier detection for streaming data using locality sensitive hashing |
CN111868710A (zh) * | 2018-03-01 | 2020-10-30 | 华为技术加拿大有限公司 | 搜索大规模非结构化数据的随机提取森林索引结构 |
CN111868710B (zh) * | 2018-03-01 | 2024-05-14 | 华为技术加拿大有限公司 | 搜索大规模非结构化数据的随机提取森林索引结构 |
CN113407370A (zh) * | 2020-03-16 | 2021-09-17 | 中国移动通信有限公司研究院 | 根因错误的聚类方法、装置、设备及计算机可读存储介质 |
CN112988754A (zh) * | 2021-04-08 | 2021-06-18 | 中煤科工集团重庆研究院有限公司 | 一种面向数据集成的快速查询方法 |
CN115587116A (zh) * | 2022-12-13 | 2023-01-10 | 北京安普诺信息技术有限公司 | 快速查询同构子图的方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104391908B (zh) | 2019-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wei et al. | Analyticdb-v: A hybrid analytical engine towards query fusion for structured and unstructured data | |
US6931408B2 (en) | Method of storing, maintaining and distributing computer intelligible electronic data | |
Hariharan et al. | Processing spatial-keyword (SK) queries in geographic information retrieval (GIR) systems | |
Athitsos et al. | Nearest neighbor retrieval using distance-based hashing | |
EP1095326B1 (en) | A search system and method for retrieval of data, and the use thereof in a search engine | |
CN104391908B (zh) | 一种图上基于局部敏感哈希的多关键字索引方法 | |
Cheung et al. | Constructing suffix tree for gigabyte sequences with megabyte memory | |
US6122644A (en) | System for halloween protection in a database system | |
CN104375992A (zh) | 一种地址匹配的方法和装置 | |
CN106874425A (zh) | 基于Storm的实时关键词近似搜索算法 | |
Alghamdi et al. | Semantic-based Structural and Content indexing for the efficient retrieval of queries over large XML data repositories | |
Chen et al. | Design and Implementation of a Temporal Extension of SQL | |
CN115794873A (zh) | 一种基于全文检索技术的权限控制方法 | |
JPH09305622A (ja) | 文書検索機能を有するデータベース管理方法およびシステム | |
Kwon et al. | RASIM: a rank-aware separate index method for answering top-k spatial keyword queries | |
Kwon et al. | G-Index Model: A generic model of index schemes for top-k spatial-keyword queries | |
Abdallah et al. | Towards a GML-Enabled Knowledge Graph Platform | |
Kapisha et al. | Exploring XML Index Structures and Evaluating C-Tree Index-based Algorithm | |
Chen et al. | Recent Progress on Selected Topics in Database Research---A Report by Nine Young Chinese Researchers Working in the United States | |
Jin et al. | Indexing temporal information for web pages | |
Xie et al. | Approximate top-k structural similarity search over XML documents | |
Karakoc et al. | Novel Approaches to Biomolecular Sequence Indexing. | |
Gupta | A keyword searching algorithm for search engines | |
CN113284573A (zh) | 一种文档数据库检索方法与装置 | |
KR100440906B1 (ko) | 문서 색인 시스템 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |