一种基于索引文件的社会关系网络创建与检索系统及方法技术方案

技术编号:10151935 阅读:239 留言:0更新日期:2014-06-30 18:56
一种基于索引文件的社会关系网络创建与检索系统,包括:关系计算引擎、关系存储系统及关系检索引擎;其中关系计算引擎,对输入的社会关系数据进行计算处理,分析出社会人员之间的两两原始关系数据;将关系计算引擎计算出的原始关系数据,按关系点、关系、属性、索引分类,以文件方式进行磁盘存储;关系检索引擎,对关系存储系统中的关系数据通过RSQL进行查询与过滤,返回结果给检索客户端。本发明专利技术能够在海量的社会关系数据中高效、快速地完成对人员的多层关系过滤与挖掘。

【技术实现步骤摘要】
一种基于索引文件的社会关系网络创建与检索系统及方法
本专利技术涉及一种基于索引文件的社会关系网络创建与检索系统及方法,属于计算机网络

技术介绍
对社会人员关系分析,现有技术一般是将人员社会活动数据采集到关系型数据库表中(如ORACLE、MYSQL、SQLSERVER等),再通过SQL语句或者存储过程对人员的社会关系进行预处理。依据规则计算出每一个人的关系人并按关系类别存储到关系表中。现有技术主要有两大致命缺点:(1)通过SQL在检索关系时,只能检索一层关系,无法通过一次查询完成对多层关系的检索与挖掘;(2)由于关系型数据库存储容量有限,并且在海量数据下关系挖掘有着无法跨越性能瓶颈。因此现有技术,为了减小数据量、提高性能,一般只采集特定人群的社会关系数据,造成了大量有价值关系的丢失。
技术实现思路
本专利技术技术解决问题:克服现有技术的不足,提供一种基于索引文件的社会关系网络创建与检索系统及方法,建立全民社会关系网络,并可以在海量的社会关系数据中高效、快速地完成对人员的多层关系过滤与挖掘。本专利技术技术解决方案:一种基于索引文件的社会关系网络创建与检索系统,其特征在于包括:关系计算引擎、关系存储系统及关系检索引擎;其中:关系计算引擎,对输入的社会关系数据进行计算处理,分析出社会人员之间两两关系,具体实现为:(1)按抽取时间戳,获取原始待处理数据(如旅馆住宿数据),将数据按指定字段排序(如按住宿时间从大到小排列);(2)取第一条数据放入计算数据缓冲池(使用Redis实现),然后取第二条数据按关系规则与放入池内的数据进行比较,若符合关系规则【旅馆号相同、房间号相同、入住和退房时间有交集】的,生成关系数据【张三,关系类型:同住,同住人:李四,同住时间:20131012,同住地点:A旅馆B房间】,将关系数据存入关系型数据库中;如ORACLE,MYSQL)中,存储格式如图6;(3)依据关系规则(如住宿关系,需清除缓冲池中某房间的7天前的住宿记录),清除计算数据缓冲池中的一定范围的缓冲数据;(4)更新计算时间戳,循环执行以上步骤,得到原始关系数据送至关系存储系统;关系存储系统,将关系计算引擎计算出的原始关系数据,按关系点(即关系人和目标人)、关系(如同住、同行等)、属性(同住时间、人员姓名等)、索引(人员按编号索引、关系按发生时间索引)分类,以文件方式进行磁盘存储,具体实现为:(1)获取关系过度库中的关系数据;(2)提取每一条关系数据中的关系人和目标人,生成结点数据存储文件。具体存储内容为该结点编号、该结点最后创建的关系编号、最后创建的属性编号;(3)提取每一条关系数据中的关系类型,生成关系数据存储文件,具体存储内容为该关系编号、该条关系的开始结点编号、开始结点前一条关系编号、开始结点后一条关系编号、结束结点前一条关系编号、结束结点后一条关系编号、关系类型、最后创建的属性编号;(4)提取每一条关系数据中的关系人和关系类型的属性,生成属性数据存储文件;(5)根据条件,在(2)、(3)步骤中,为关系结点或者关系创建索引,索引创建是为了提高数据检索的性能。关系检索引擎,对关系存储系统中的关系数据通过RSQL进行查询与过滤,返回结果给检索客户端,包括有以下步骤:A.通过对外接口,获取检索客户端提交的RSQL语句;B.对RSQL语句进行语法与词法分析,并从中提取开始结点编号;C.根据B中结点编号,检索关系存储系统,获取结点数据;D.从C中的结点数据结构中,获取该结点最后创建的关系编号;E.根据D中的关系编号,检索关系存储系统,获取关系数据;F.从E中的关系数据提取关系属性,与RSQL输入的关系参数进行比对(如“关系发生时间、关系发生地点”),符合条件的,将关系结束结点作为查询结果加入结果列表,并返回关系数据;G.从F中返回的关系数据结构中,获取当前关系开始结点和结束结点的前一条关系编号和后一条关系编号,重复E-F步骤;H.将检索过程中的关系和结点加入系统缓存,下次检索时直接从缓存读取数据;I.返回结果数据。关系存储系统中:(1)关系结点物理存储结构结点编号最后创建的关系编号最后创建的属性编号(2)关系边的物理存储结构关系结点和关系都是以文件形式存储于磁盘中。关系检索引擎具体实现过程如下:(1)用户指定检索参数,检索引擎根据参数(如身份证号),获取开始结点信息。(2)获取开始结点最新创建的关系,从关系中获取结束结点前一条关系和后一条关系。如果前后关系都不存在,表示该条关系检索完成。如果关系存在,则将该未结点加入待检索子结点队列。(3)获取开始结点的前一条关系信息,若不存在前一条关系,表示该层关系检索完成。(4)若存在前一条关系,从关系中获取结束结点前一条关系和后一条关系。如果前后关系都不存在,表示该条关系检索完成。如果关系存在,则将该未结点加入待检索子结点队列。(5)查询对子结点队列,对子结点进行检索,检索过程与(2)、(3)、(4)相同,此步多层检索功能。(6)对每层结果合并,返回。关系检索引擎具体实现过程如下:(1)使用RestfulWebService形式实现检索引擎对外接口,用于给用户端提交RSQL语句,RSQL包括目标人、关系类型、关系发生时间、关系发生地点、返回数据格式。(2)基于Java脚本语言,实现校验程序,对(1)提交的RSQL进行词法与语法校验。校验通过后,将RSQL拆分为结点、关系、条件三类结构数据,并返回。(3)检索引擎从(2)中的结点数据中获取开始结点编号,通过RPC调用,至关系存储系统中检索对应结点数据,由结点的存储结构(图7)可知,可以从中获取最新创建的关系数据,并将关系属性与(2)中条件数据进行关系运算(大于、等于、小于、包含、区间、并且、或者等)。符合条件,加入关系数据至哈希表中,作为中间结果返回。(4)对(3)返回的关系数据哈希表进行遍历,由关系的存储结构(图8)可知,可以从中获取表中每条关系的前后关系数据,关系属性符合条件的,将关系加入(3)中的哈希表中,并将当前关系标识为已遍历。重复此步骤,直至所有关系都被遍历,返回哈希表数据。(5)按RSQL对返回数据格式要求,对(4)返回的关系数据哈希表进行遍历并组装结果数据。将结果作为httpresponse数据体返回给调用端。一种基于索引文件的社会关系网络创建与检索方法,实现步骤如下:(1)对原始社会人员轨迹数据(存在于关系型数据库、文本文件等介质中),按关联规则进行比对处理,将比对结果存入关系型数据库的关系过渡表中。表存储字段如图6所示。(2)关系存储系统抓取关系过渡表中的关系数据,提取每一行数据中的【目标人ID、目标人姓名、目标人类型】和【关系人ID、关系人姓名、关系人ID类型】以及关系编号作为关系的结点数据,存入结点文件内。这种结构的优点是通过结点快速关联到该结点相对应的关系,同时结点具有全库唯一性。结点的文件存储结构如图7所示。(3)关系存储系统按规则需求提取每一行数据中的【关系类型编码、关系发生时间、关系发生场所】以及关系开始结点、结束结点作为关系数据,以双向链表结构存入关系文件内。这种结构的优点是可以通过关系快速关联到该关系的结点,同时不会对结点属性和关系属性进行冗余存储(传统数据库即使表的列为空,也会占用存储空间),大量节省本文档来自技高网...
一种基于索引文件的社会关系网络创建与检索系统及方法

【技术保护点】
一种基于索引文件的社会关系网络创建与检索系统,其特征在于包括:关系计算引擎、关系存储系统及关系检索引擎;其中:关系计算引擎,对输入的社会关系数据进行计算处理,分析出社会人员之间的两两原始关系数据,具体实现为:(1)按抽取时间戳,获取原始待处理数据,将数据按指定字段排序;(2)取第一条数据放入计算数据缓冲池,然后取第二条数据按关系规则与放入池内的数据进行比较,若符合关系规则的,生成关系数据,将关系数据存入关系型数据库;(3)依据所述关系规则,清除计算数据缓冲池中的一定范围的缓冲数据;(4)更新计算时间戳,循环执行步骤(1)‑(3),得到原始关系数据送至关系存储系统;关系存储系统,将关系计算引擎计算出的原始关系数据,按关系点、关系、属性、索引分类,以文件方式进行磁盘存储;关系检索引擎,对关系存储系统中的关系数据通过RSQL进行查询与过滤,返回结果给检索客户端,包括有以下步骤:A.通过对外接口,获取检索客户端提交的RSQL语句;B.对RSQL语句进行语法与词法分析,并从中提取开始结点编号;C.根据B中结点编号,检索关系存储系统,获取结点数据;D.从C中的结点数据结构中,获取该结点最后创建的关系编号;E.根据D中的关系编号,检索关系存储系统,获取关系数据;F.从E中的关系数据提取关系属性,与RSQL输入的关系参数进行比对,符合条件的,将关系结束结点作为查询结果加入结果列表,并返回关系数据;G.从F中返回的关系数据结构中,获取当前关系开始结点和结束结点的前一条关系编号和后一条关系编号,重复E‑F步骤;H.将检索过程中的关系和结点加入系统缓存,下次检索时直接从缓存读取数据;I.返回结果数据。...

【技术特征摘要】
1.一种基于索引文件的社会关系网络创建与检索系统,其特征在于包括:关系计算引擎、关系存储系统及关系检索引擎;其中:关系计算引擎,对输入的社会关系数据进行计算处理,分析出社会人员之间的两两原始关系数据,具体实现为:(1)按抽取时间戳,获取原始待处理数据,将数据按指定字段排序;(2)取第一条数据放入计算数据缓冲池,然后取第二条数据按关系规则与放入池内的数据进行比较,若符合关系规则的,生成关系数据,将关系数据存入关系型数据库;(3)依据所述关系规则,清除计算数据缓冲池中的一定范围的缓冲数据;(4)更新计算时间戳,循环执行步骤(1)-(3),得到原始关系数据送至关系存储系统;关系存储系统,将关系计算引擎计算出的原始关系数据,按关系点、关系、属性、索引分类,以文件方式进行磁盘存储;关系检索引擎,对关系存储系统中的关系数据通过RSQL进行查询与过滤,返回结果给检索客户端,包括有以下步骤:A.通过对外接口,获取检索客户端提交的RSQL语句;B.对RSQL语句进行语法与词法分析,并从中提取开始结点编号;C.根据B中结点编号,检索关系存储系统,获取结点数据;D.从C中的结点数据中,获取该结点最后创建的关系编号;E.根据D中的关系编号,检索关系存储系统,获取关系数据;F.从E中的关系数据提取关系属性,与RSQL输入的关系参数进行比对,符合条件的,将关系结束结点作为查询结果加入结果列表,并返回关系数据;G.从F中返回的关系数据中,获取当前关系开始结点和结束结点的前一条关系编号和后一条关系编号,重复E-F步骤;H.将检索过程中的关系和结点加入系统缓存,下次检索时直接从缓存读取数据;I.返回结果数据;所述RSQL是类SQL的关系检索语言,RSQL结构描述:Restful对外接口层用于外界将Rsql传递给检索引擎;Rsql语法解析器对外部传入的Rsql语句进行语法解析,不符合语法规范的直接抛出异常;RSQL词法解析器对外部传入的RSQL语句进行词法解析,不符合词法规范的直接抛出异常;RSQL缓冲区检索引擎会将所有解析过的RSQL语句经过hash算法后,放入到缓冲区,当执行RSQL时,检索引擎直接从缓冲区获取对应的相关参数以提高解析效率;结果内容缓存检索引擎对所检索人员和关系使用LRU算法进行缓存;索引文件访问层检索引擎访问索引文件的适配层;RSQL语法结构如下:START:关系检索的开始,索引关系的开始结点;MATCH:用于和START绑定,定义一个查询匹配模型;WHERE:用于查询条件过滤;RETURN:用于返回结果集;CREATE:用于创建人员结点与人与人之间的关系;DELETE:用于删除人员或者关系;SET:用于设置结点或者关系的属性;FOREACH:对结点或者关系进行循环迭代操作;WITH:将查询结果切分成几个不同的部分。2.根据权利要求1所述的基于索引文件的社会关系网络创建与检索系统,其特征在于:所述关系存储系统具体实现为:(11)获取关系型数据库中的关系数据;(12)提取每一条关系数据中的关系人和目标人,生成结点数据存储文件,具体存储内容为该结点编号、该结点最后创建的关系编号、最后创建的属性编号;(13)提取每一条关系数据中的关...

【专利技术属性】
技术研发人员:冯祥邱志超吴波黄忠伟刘磊刘磊徐振兴孙权高明汤东梅
申请(专利权)人:安徽讯飞智元信息科技有限公司
类型:发明
国别省市:安徽;34

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

1