资源检索方法及计算机可读存储介质与流程

文档序号:20617608发布日期:2020-05-06 20:21阅读:153来源:国知局
资源检索方法及计算机可读存储介质与流程

本发明涉及数据检索技术领域,尤其涉及一种资源检索方法及计算机可读存储介质。



背景技术:

图拓扑关系的搜索算法被应用在很多场景中,目前比较常见的搜索有以下几种方案:

1、直接采用全文搜索引擎

常用的引擎包含elasticsearch(下文简称:es)、solr、lucence,这些虽然都可以支持全文检索,但不能有效处理资源间的图关系,需要额外构建系统来支持关系的过滤,无法支撑复杂图遍历场景下的检索;

2、采用原始的图引擎

常用的图引擎主要有titan、neo4j等开源框架,虽然这些引擎可能有效处理图关系,且满足特定条件的全文检索场景(其底层也依赖了全文检索引擎技术:es、solr),但其要求只能遍历局部图(由一个或几个点出发,访问到较小集合的点),无法完全满足教育领域里的资源检索要求:实时响应,且命中结果集会包含较大量的资源。



技术实现要素:

本发明所要解决的技术问题是:提供一种资源检索方法及计算机可读存储介质,解决当查询结果较大时,无法实时响应的问题。

为了解决上述技术问题,本发明采用的技术方案为:一种资源检索方法,包括:

根据第一资源检索条件在titan图引擎中进行图遍历,得到第一图节点编号集合;

分别将所述第一图节点编号集合中的各图节点编号转换为es引擎中的es编号,得到第一es编号集合;

将第二资源检索条件转换为es检索条件;

根据所述第一es编号集合和es检索条件在es引擎中进行检索,得到第二es编号集合;

分别将所述第二es编号集合中的各es编号转换为titan图引擎中的图节点编号,得到第二图节点编号集合;

根据所述第二图节点编号集合在titan图引擎中获取得到资源列表。

本发明还涉及一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如下步骤:

根据第一资源检索条件在titan图引擎中进行图遍历,得到第一图节点编号集合;

分别将所述第一图节点编号集合中的各图节点编号转换为es引擎中的es编号,得到第一es编号集合;

将第二资源检索条件转换为es检索条件;

根据所述第一es编号集合和es检索条件在es引擎中进行检索,得到第二es编号集合;

分别将所述第二es编号集合中的各es编号转换为titan图引擎中的图节点编号,得到第二图节点编号集合;

根据所述第二图节点编号集合在titan图引擎中获取得到资源列表。

本发明的有益效果在于:通过先根据第一资源检索条件在titan图中进行图遍历,获取到titan图中局部图,然后在es引擎中根据第二检索条件在局部图中进行检索,从而解决当查询结果较大时,无法实时响应的问题。本发明通过将titan索引与es索引相结合,使得titan图引擎可支持实时全文检索,扩展了titan图引擎的适用场景范围,同时使得es引擎可支持图遍历,扩展了es引擎全文检索的适用场景范围。

附图说明

图1为本发明实施例一的一种资源检索方法的流程图。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图详予说明。

本发明最关键的构思在于:在titan索引的基础上,在图遍历的过程中显示使用es索引。

请参阅图1,一种资源检索方法,包括:

根据第一资源检索条件在titan图引擎中进行图遍历,得到第一图节点编号集合;

分别将所述第一图节点编号集合中的各图节点编号转换为es引擎中的es编号,得到第一es编号集合;

将第二资源检索条件转换为es检索条件;

根据所述第一es编号集合和es检索条件在es引擎中进行检索,得到第二es编号集合;

分别将所述第二es编号集合中的各es编号转换为titan图引擎中的图节点编号,得到第二图节点编号集合;

根据所述第二图节点编号集合在titan图引擎中获取得到资源列表。

从上述描述可知,本发明的有益效果在于:

进一步地,所述分别将所述第一图节点编号集合中的各图节点编号转换为es引擎中的es编号,得到第一es编号集合具体为:

根据图节点编号与es编号的映射关系,分别将所述第一图节点编号集合中的各图节点编号转换为es引擎中的es编号,得到第一es编号集合。

进一步地,所述分别将所述第二es编号集合中的各es编号转换为titan图引擎中的图节点编号,得到第二图节点编号集合具体为:

根据图节点编号与es编号的映射关系,分别将所述第二es编号集合中的各es编号转换为titan图引擎中的图节点编号,得到第二图节点编号集合。

由上述描述可知,根据图节点id与esid一一对应的映射关系,实现二者之间的相互转换。

进一步地,所述es引擎中存储有titan图引擎中的资源的属性信息;

所述将第二资源检索条件转换为es检索条件具体为:

将第二资源检索条件转换为es引擎中对应资源的属性信息的过滤条件。

由上述描述可知,将第二资源检索条件转换为对应的es检索条件,使得可在es引擎中进行检索。

本发明还提出一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如下步骤:

根据第一资源检索条件在titan图引擎中进行图遍历,得到第一图节点编号集合;

分别将所述第一图节点编号集合中的各图节点编号转换为es引擎中的es编号,得到第一es编号集合;

将第二资源检索条件转换为es检索条件;

根据所述第一es编号集合和es检索条件在es引擎中进行检索,得到第二es编号集合;

分别将所述第二es编号集合中的各es编号转换为titan图引擎中的图节点编号,得到第二图节点编号集合;

根据所述第二图节点编号集合在titan图引擎中获取得到资源列表。

进一步地,所述分别将所述第一图节点编号集合中的各图节点编号转换为es引擎中的es编号,得到第一es编号集合具体为:

根据图节点编号与es编号的映射关系,分别将所述第一图节点编号集合中的各图节点编号转换为es引擎中的es编号,得到第一es编号集合。

进一步地,所述分别将所述第二es编号集合中的各es编号转换为titan图引擎中的图节点编号,得到第二图节点编号集合具体为:

根据图节点编号与es编号的映射关系,分别将所述第二es编号集合中的各es编号转换为titan图引擎中的图节点编号,得到第二图节点编号集合。

进一步地,所述es引擎中存储有titan图引擎中的资源的属性信息;

所述将第二资源检索条件转换为es检索条件具体为:

将第二资源检索条件转换为es引擎中对应资源的属性信息的过滤条件。

实施例一

请参照图1,本发明的实施例一为:一种资源检索方法,所述方法基于titan图引擎,可应用于基于图拓扑关系的全文搜索场景,例如教育资源检索中,全文搜索某个知识点下包含某些关键字的课件、习题等资源列表,也适用于社交场景下的好友搜索等。

所述方法包括如下步骤:

s1:根据第一资源检索条件在titan图引擎中进行图遍历,得到第一图节点编号集合。在titan图中,每个节点可代表不同的资源,而边则可代表资源关系,即资源之间的关联关系。第一资源检索条件可以为资源,也可以为资源关系,根据第一资源检索条件,在titan图中进行遍历,筛选出中间结果,从titan图中获取满足第一资源检索条件的图节点id集合。

s2:分别将所述第一图节点编号集合中的各图节点编号转换为es引擎中的es编号,得到第一es编号集合。具体地,默认场景下,图节点编号和es编号是一一对应的,只不过编号的形式不一致,titan图引擎中的编号格式为长整型,而es引擎中的编号格式为字符串,通过现有的编码技术生成映射关系。本步骤即根据图节点id与esid的映射关系,使用titan图引擎中自带的工具,将图节点id转换为esid。

s3:将第二资源检索条件转换为es检索条件;第二资源检索条件可为对应某些资源的关键字。在es引擎中同时维护了资源的属性信息,本步骤即将第二资源检索条件转换成es属性信息的过滤条件。

s4:根据所述第一es编号集合和es检索条件在es引擎中进行检索,得到第二es编号集合;即将第一资源检索条件和第二资源检索条件都转换为es检索条件后,形成最终的es检索条件,在es引擎中进行检索,获取到资源节点的id列表。

s5:分别将所述第二es编号集合中的各es编号转换为titan图引擎中的图节点编号,得到第二图节点编号集合;即根据步骤s2的映射关系,将esid转换为图节点id。

s6:根据所述第二图节点编号集合在titan图引擎中获取得到资源列表;即根据图节点id检索得到查询结果,即获取资源除id外的额外信息,包括分页数据。

本实施例在titan全局索引(graphindex)和局部索引(vertexcentricindex)基础上,提出一种在图遍历过程中显式使用(人为改变使用索引策略,强制使用)es索引的方法,解决当查询结果较大时,无法实时响应的问题,实现titan的定制化索引检索能力。

在具体应用场景中,如在k12教育领域中,资源一般通过教育阶段、适用对象、学科、版本等来做归类,并挂靠在相应的教材、章节下,一般教师备课,需要在与知识点对应的章节下全文搜索需要的素材、课件等资源。

首先,教师可先登录到101ppt客户端,系统根据用户信息自动配置到相应的教材。然后,教师选择在某个章节下制作课件,在搜索框中输入某些关键字;后台即通过上述方法,根据分类、教材、章节及关键字搜索出相关的素材和课件列表。

实施例二

本实施例是对应上述实施例的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如下步骤:

根据第一资源检索条件在titan图引擎中进行图遍历,得到第一图节点编号集合;

分别将所述第一图节点编号集合中的各图节点编号转换为es引擎中的es编号,得到第一es编号集合;

将第二资源检索条件转换为es检索条件;

根据所述第一es编号集合和es检索条件在es引擎中进行检索,得到第二es编号集合;

分别将所述第二es编号集合中的各es编号转换为titan图引擎中的图节点编号,得到第二图节点编号集合;

根据所述第二图节点编号集合在titan图引擎中获取得到资源列表。

进一步地,所述分别将所述第一图节点编号集合中的各图节点编号转换为es引擎中的es编号,得到第一es编号集合具体为:

根据图节点编号与es编号的映射关系,分别将所述第一图节点编号集合中的各图节点编号转换为es引擎中的es编号,得到第一es编号集合。

进一步地,所述分别将所述第二es编号集合中的各es编号转换为titan图引擎中的图节点编号,得到第二图节点编号集合具体为:

根据图节点编号与es编号的映射关系,分别将所述第二es编号集合中的各es编号转换为titan图引擎中的图节点编号,得到第二图节点编号集合。

进一步地,所述es引擎中存储有titan图引擎中的资源的属性信息;

所述将第二资源检索条件转换为es检索条件具体为:

将第二资源检索条件转换为es引擎中对应资源的属性信息的过滤条件。

综上所述,本发明提供的一种资源检索方法及计算机可读存储介质,通过先根据第一资源检索条件在titan图中进行图遍历,获取到titan图中局部图,然后在es引擎中根据第二检索条件在局部图中进行检索,从而解决当查询结果较大时,无法实时响应的问题。本发明通过将titan索引与es索引相结合,使得titan图引擎可支持实时全文检索,扩展了titan图引擎的适用场景范围,同时使得es引擎可支持图遍历,扩展了es引擎全文检索的适用场景范围。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1