当前位置: 首页 > 专利查询>福州大学专利>正文

基于Storm的实时关键词近似搜索算法制造技术

技术编号:15691018 阅读:69 留言:0更新日期:2017-06-24 03:53
本发明专利技术涉及一种基于Storm的实时关键词近似搜索算法,综合使用Redis内存数据库中的Hash、Set和Sorted Set三种数据结构来分门别类地存储RDF数据;结合Storm流式处理框架实现了RDF数据的实时流入和实时近似搜索;同时利用存储在Redis内存数据库集群中的历史数据来加快关键词近似搜索的效率。本发明专利技术支持对实例、文本、类和属性的搜索,并且实现对流式数据的实时近似搜索,具有明显的优势。

Approximate search algorithm for real time keyword based on Storm

The present invention relates to a real-time Storm based on approximate keyword search algorithm, the integrated use of Redis and Hash in memory database Set and Sorted Set three data structure to be arranged to store the RDF data stream processing; combined with the Storm framework to realize RDF data into real-time and real time approximate search; while using historical data stored in Redis memory database in the cluster to accelerate the efficiency of the approximate search keywords. The invention supports the search of instances, texts, classes and attributes, and realizes the real-time approximate search of convection data, which has obvious advantages.

【技术实现步骤摘要】
基于Storm的实时关键词近似搜索算法
本专利技术属于海量RDF数据检索
,尤其涉及一种基于Storm的实时关键词近似搜索算法。
技术介绍
目前,RDF已被广泛应用,数据量也成几何式地增长,众多机构和项目均采用RDF表达元数据,如DBpedia、DBLP、IBM的“智慧地球”项目等。面对如此爆炸式增长的数据压力,RDF数据存储、搜索和推理在性能和扩展性方面都面临着新的挑战。关键词搜索作为最受普通用户欢迎的搜索方式,普通用户只要输入想要进行搜索的关键词,就能够方便快捷地搜索得到自己想要的结果。关键词搜索不仅适用于结构化、半结构化的数据,而且对非结构化的数据也提供了良好的支持,弥补了结构化查询存在的不足。随着RDF数据的飞速增长,涌现出了大量针对RDF数据关键词搜索的研究工作。LadwigG等人根据抽取的结构信息构造关键词对应的搜索图并生成结构化查询语句,结合相关的索引信息直接搜索得到结果。LeW等人根据语义信息提取RDF数据图中的摘要信息,并且支持增量地更新摘要信息,同时把摘要信息用于查询剪枝从而加速搜索效率。VirgilioRD等人利用MapReduce计算模型将图并行问题转换本文档来自技高网...
基于Storm的实时关键词近似搜索算法

【技术保护点】
一种基于Storm的实时关键词近似搜索算法,其特征在于:包括分布式存储和Storm实时搜索处理;所述分布式存储包括以下步骤:步骤A1:对RDF数据进行预处理;步骤A2:对预处理后的RDF数据进行数据哈希编码压缩;步骤A3:将数据哈希编码压缩后的RDF数据存储在Redis分布式数据库中,所述Redis分布式数据库中存储了五类数据,包括本体数据、实例数据、历史数据、哈希映射信息和缓存数据;所述Storm实时搜索处理包括以下步骤:步骤B1:输入关键词集合;步骤B2:根据关键词集合、本体数据、历史数据及哈希映射信息进行关键词映射匹配得到匹配的模式三元组、本体子图及其语义评分或者Top‑k结果子图;步骤...

【技术特征摘要】
1.一种基于Storm的实时关键词近似搜索算法,其特征在于:包括分布式存储和Storm实时搜索处理;所述分布式存储包括以下步骤:步骤A1:对RDF数据进行预处理;步骤A2:对预处理后的RDF数据进行数据哈希编码压缩;步骤A3:将数据哈希编码压缩后的RDF数据存储在Redis分布式数据库中,所述Redis分布式数据库中存储了五类数据,包括本体数据、实例数据、历史数据、哈希映射信息和缓存数据;所述Storm实时搜索处理包括以下步骤:步骤B1:输入关键词集合;步骤B2:根据关键词集合、本体数据、历史数据及哈希映射信息进行关键词映射匹配得到匹配的模式三元组、本体子图及其语义评分或者Top-k结果子图;步骤B3:根据匹配的模式三元组、关键词集合的真子集对应的本体子图及其语义评分进行本体子图构建排序得到本体子图及其语义评分;步骤B4:根据本体子图及其语义评分、实例数据及缓存数据进行结果子图构建得到结果子图;步骤B5:当结果子图中的实例三元组条数未达到预设值k时,根据缓存数据进行近似本体子图构建排序得到近似本体子图及其语义相似度评分;步骤B6:根据所述近似本体子图及其语义相似度评分进行近似搜索结果子图;步骤B7:对所述Top-k结果子图进行编码反转;步骤B8:将编码反转后的Top-k结果子图传给DRPC服务器,并返回Top-k结果子图。2.根据权利要求1所述的基于Storm的实时关键词近似搜索算法,其特征在于:所述步骤A2中数据哈希编码压缩的具体过程如下:步骤A21:获取RDF三元组中包含的不同前缀;步骤A22:遍历获取到的前缀,查看Conflict中是否存在当前访问的前缀,如果存在,则该前缀为冲突前缀,不对该前缀进行哈希编码,保持字符串的格式不变,跳到步骤A27,否则跳到步骤A23;所述Conflict为哈希映射信息的存储方案,存储发生冲突的前缀,其中值为冲突的前缀字符串,其存储结构为Conflict={C1,C2,…,Ci,…,Cn},Ci=(ConflictPrefix);步骤A23:查看Prefix_Hash中是否存在以当前访问的前缀为key的记录,如果存在,则跳到步骤A27,否则跳到步骤A24;所述Prefix_Hash为哈希映射信息的存储方案,存储前缀及其哈希值的信息,以键值对的形式存储,其中键为前缀,值为哈希值,其存储结构为Prefix_Hash={PH1,PH2,…,PHi,…,PHn},PHi=(Prefix=>Hash);步骤A24:利用BKDRHash算法散列计算生成当前访问前缀对应的哈希值,查看Hash_Prefix中是否存在以该哈希值为key的记录,如果存在,则当前访问的前缀为冲突前缀,跳到步骤A25,否则跳到步骤A26;所述Hash_Prefix为哈希映射信息的存储方案,存储Prefix_Hash的反转备份,以键值对的形式存储,其中键为哈希值,值为前缀,其存储结构为Hash_Prefix={HP1,HP2,…,HPi,…,HPn},HPi=(Hash=>Prefix);步骤A25:当前访问的前缀保持字符串的格式不变,并且将其加入Conflict中,跳到步骤A27;步骤A26:将键值对加入Prefix_Hash,(哈希值,当前访问的前缀)键值对加入Hash_Prefix,跳到步骤A27;步骤A27:判断所有的前缀是否遍历处理完成,如果遍历处理完成,跳到步骤A28,否则跳到步骤A22;步骤A28:当全部的前缀都遍历处理完成后,RDF三元组中出现在Conflict中的冲突前缀保持字符串的格式不变,并且将其他的前缀替换成对应的哈希值,跳到步骤A29;步骤A29:输出哈希编码压缩后的RDF三元组;步骤A210:数据哈希编码压缩结束。3.根据权利要求1所述的基于Storm的实时关键词近似搜索算法,其特征在于:所述步骤B2中关键词映射匹配的具体过程如下:步骤B201:对关键词集合中的关键词进行数据哈希编码压缩;步骤B202:查看His_Keywords_ReSubGraph中是否存在以当前搜索关键词集合为key的记录,如果存在,则该关键词集合以前搜索过,跳到步骤B203,否则跳到步骤B204;所述His_Keywords_ReSubGraph为历史数据的存储方案,存储历史数据中关键词集合及其对应的结果子图,以键值对的形式存储,其中键为关键词集合,值为对应的结果子图,其存储结构为His_Keywords_ReSubGraph={KR1,KR2,…,KRi,…,KRn},KRi=(Keywords=>{ReSubGraph:[]});步骤B203:查看Data_Change_Record中存储本体数据的数据结构对应的数据量是否发生改变,如果发生改变,则跳到步骤B205,否则跳到步骤B206;所述Data_Change_Record为历史数据的存储方案,存储RDF本体数据和实例数据变化的相关信息,以键值对的形式存储,其中键为数据结构的名称,值为该数据结构中数据变化前的数据量和数据变化后的数据量组合,其存储结构为Data_Change_Record={KV1,KV2,…,KVi,…,KVn},KVi=(DataName=>{BeforeNum,AfterNum});步骤B204:查看His_Keywords_ReSubGraph中是否存在以当前搜索关键词集合的真子集为key的记录,如果存在,跳到步骤B207,否则跳到步骤B205;步骤B205:取出His_Keywords_Inf中关键词匹配的模式三元组,并将不在His_Keywords_Inf中的关键词映射成对应的类或属性,并且搜索得到关键词匹配的模式三元组,跳到步骤B209;所述His_Keywords_Inf为历史数据的存储方案,存储历史数据中关键词及其对应的相关信息,以键值对的形式存储,其中键为关键词,值为所属类型、对应的类或属性以及匹配的模式三元组的组合,其存储结构为His_Keywords_Inf={KI1,KI2,…,KIi,…,KIn},KIi=(Keyword=>{Type,ClassOrPro:[],OntoTriple:[][]});步骤B206:查看Data_Change_Record中存储实例数据的数据结构对应的数据量是否发生改变,如果发生改变,则跳到步骤B212,否则跳到步骤B215;步骤B207:获取His_Keywords_SubGraph中关键词集合真子集对应的本体子图及其对应的语义评分,跳到步骤B208;所述His_Keywords_SubGraph为历史数据的存储方案,存储历史数据中关键词集合对应的本体子图,其中值为本体子图,每个值都会关联对应的语...

【专利技术属性】
技术研发人员:汪璟玢陈远
申请(专利权)人:福州大学
类型:发明
国别省市:福建,35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1