一种基于sql实现全文检索图数据库的查询方法及查询系统
阅读说明:本技术 一种基于sql实现全文检索图数据库的查询方法及查询系统 (Query method and query system for realizing full-text search graph database based on SQL ) 是由 苗建新 冯凯 余智华 于 2021-03-10 设计创作,主要内容包括:本发明公开了一种基于SQL实现全文检索图数据库的查询方法及查询系统,包括以下步骤:S1、建立sql查询系统和图查询系统的映射关系;S2、建立sql查询系统的查询用户和图查询系统的用户映射关系;S3、建立sql查询系统中表和图查询系统中的节点、边等对象的对应关系;S4、将查询中涉及到图节点关系的查询下发图数据库执行,针对图数据库查询返回的记录通过SQL全文检索,向用户返回满足条件的记录。本发明的有益效果为:可以将图数据库,关系数据库存储的数据一起关联查询,减轻用户开发系统的负担。(The invention discloses a query method and a query system for realizing a full-text retrieval graph database based on SQL, which comprises the following steps: s1, establishing a mapping relation between the sql query system and the graph query system; s2, establishing a user mapping relation between a query user of the sql query system and the graph query system; s3, establishing a corresponding relation between objects such as nodes, edges and the like in a table and a graph query system in the sql query system; and S4, issuing the query related to the graph node relationship in the query to a graph database for execution, and returning the records meeting the conditions to the user through SQL full-text retrieval aiming at the records returned by the graph database query. The invention has the beneficial effects that: the data stored in the graph database and the relational database can be associated and inquired together, and the burden of a user for developing a system is reduced.)
技术领域
本发明涉及图数据库的查询领域,具体来说,涉及一种基于SQL实现全文检索图数据库的查询方法及查询系统。
背景技术
随着社交、电商、金融、零售、物联网等行业的快速发展,现实社会织起了了一张庞大而复杂的关系网,传统数据库很难处理关系运算。大数据行业需要处理的数据之间的关系随数据量呈几何级数增长,亟需一种支持海量复杂数据关系运算的数据库,图数据库应运而生。
目前图数据库领域最主流的两种查询语言为Cypher和Gremlin。这些图查询语言都是侧重于通过对图的遍历找到满足条件的节点和关系,但是对关系或者节点的属性的条件检查都比较简单,比如当节点的附加属性是一篇文档时,想通过这篇文档来查询更加符合条件的节点,在目前的图数据库查询都难以做到。
针对相关技术中的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中的问题,本发明提出一种基于SQL实现全文检索图数据库的查询方法及查询系统,解决了针对目前针对图的复杂属性查询困难的问题,减轻用户开发系统的负担。
本发明的技术方案是这样实现的:
根据本发明的一个方面,提供了一种基于SQL实现全文检索图数据库的查询方法,包括以下步骤:
S1、建立sql查询系统和图查询系统的映射关系;
S2、建立sql查询系统的查询用户和图查询系统的用户映射关系;
S3、建立sql查询系统中表和图查询系统中的节点、边等对象的对应关系;
S4、将查询中涉及到图节点关系的查询下发图数据库执行,针对图数据库查询返回的记录通过SQL全文检索,向用户返回满足条件的记录。
进一步的,所述步骤S1建立sql查询系统和图查询系统的映射关系包括以下步骤:
S11、用户在sql查询系统中输入图查询系统的访问url地址;
S12、在url地址上建立sql查询系统到该图数据库的映射关系。
进一步的,所述url地址包括ip端口号和图数据库名称。
进一步的,所述步骤S2建立sql查询系统的查询用户和图查询系统的用户映射关系包括以下步骤:
S21、用户在sql查询系统中输入图数据库的访问用户以及访问密码;
S22、根据访问用户以及访问密码建立当前sql用户到图数据库的映射关系。
进一步的,步骤S3建立sql查询系统中表和图查询系统中的节点和边等对象的对应关系包括以下步骤:
S31、在sql查询系统中建立包含边等对象的属性书写文档的表;
S32、建立该表跟图数据库查询条件边等对象的对应关系。
进一步的,所述步骤S4将查询中涉及到图节点关系的查询下发图数据库执行,针对图数据库查询返回的记录通过SQL全文检索,向用户返回满足条件的记录包括以下步骤:
S41、输入边等对象中发表的文档中的相关字眼;
S42、系统在接收到上述用户查询SQL语句时,对sql语句进行词法语法分析;
S43、生成SQL执行计划;
S44、建立和远端图数据库系统的连接;
S45、下发相关的图查询语言到图数据库;
S46、读取图数据库满足条件的记录;
进一步的,所述步骤S42中,系统在接收到上述用户查询SQL语句时,对sql语句进行词法语法分析,如有错误,向用户返回错误信息,若没有错误则继续执行步骤S43。
根据本发明的另一方面,提供了一种基于SQL实现全文检索图数据库的查询系统,包括客户端、解析器、优化器、执行器、外部数据包装器和数据字典,所述客户端、解析器、优化器、执行器依次电信连接,所述外部数据包装器分别与所述优化器和执行器电信连接,并且,所述外部数据包装器通过数据字典与所述解析器电信连接;
其中,所述解析器用于实现对SQL语句的语法解析、语义校验、查询重写的功能;
所述优化器采用基于代价的查询优化(CBO)方式,生成SQL查询计划;
所述外部数据包装器采用回调函数方式,提供FDW对象管理、外部服务器(ForeignServer)对象管理、外部表对象管理、用户映射管理的功能;
所述数据字典用于定义FDW对象、外部服务器、外部表、用户映射相关元数据信息。
本发明的有益效果为:使用本发明提供的方法,用户通过SQL语句向系统发送请求,系统将涉及图查询检索的请求下发图数据库查询,基于返回的结果对其进行全文检索,解决了针对目前针对图的复杂属性查询困难的问题,减轻用户开发系统的负担,对图数据库的检索很有意义,同时由于引入了SQL查询系统,可以通过SQL对映射到该系统的异构数据源进行关联查询,即可以将图数据库,关系数据库存储的数据一起关联查询,减轻用户开发系统的负担。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的一种基于SQL实现全文检索图数据库的查询方法的流程图;
图2是根据本发明实施例的一种基于SQL实现全文检索图数据库的查询系统的框图;
图3是根据本发明实施例的一种基于SQL实现全文检索图数据库的查询方法的流程框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1和图3,根据本发明的实施例,提供了一种基于SQL实现全文检索图数据库的查询方法,包括以下步骤:
S1、建立sql查询系统和图查询系统的映射关系;
S11、用户在sql查询系统中输入图查询系统的访问url地址(包含ip,端口号图数据库名称);
S12、建立sql查询系统到该图数据库的映射关系,从而可以在后面访问图数据库数据。
所述步骤S1的代码如下:
CREATE SERVER graph_server
FOREIGN DATA WRAPPER graph_fdw
OPTIONS(url'http://10.170.130.127:8223/db');
S2、建立sql查询系统的查询用户和图查询系统的用户映射关系
S21、用户在sql查询系统中输入图数据库的访问用户以及访问密码;
S22、建立当前sql用户到图数据库的映射关系,从而可以使当前sql用户访问图数据库的数据。
所述步骤S2的代码如下:
create user MAPPING FOR db_user server graph_server
options(username'graph_user',password'graph_user');
S3、建立sql查询系统中表和图查询系统中的节点、边等对象的对应关系;
以下以找出Lihua认识的人为边等对象进行说明,步骤如下:
S31、sql查询系统中建立包含Lihua认识的人的属性如姓名,年龄,书写文档的表;
S32、建立该表跟图数据库查询条件Lihua认识的人的对应关系。
所述步骤S3的代码如下:
CREATE FOREIGN TABLE persons(
name text,
age int,
doc text)
SERVER graph_server
OPTIONS(query'{"query":"MATCH(person:Person)-[:KNOWS](foaf:Person)WHERE person.name="Lihua"}');
S4、将查询中涉及到图节点关系的查询下发图数据库执行,针对图数据库查询返回的记录通过SQL全文检索,向用户返回满足条件的记录。
S41、输入边等对象中发表的文档中的相关字眼;
如找出Lihua认识的人中发表的文档包括类似人工智能字眼的人,该步骤的代码为:
select name,doc from persons where [email protected]@(‘jieba_qry’,’人工智能’);
S42、系统在接收到上述用户查询SQL语句时,对sql语句进行词法语法分析,如有错误,向用户返回错误信息,没有错误继续执行步骤S43;
S43、生成SQL执行计划;
S44、建立和远端图数据库系统的连接;
S45、下发相关的图查询语言到图数据库;
S46、读取图数据库满足条件的记录;
S47、针对读取的记录进行全文检索查询,将满足条件的记录返回用户。
如图2所示,根据本发明的实施例,还提供了一种基于SQL实现全文检索图数据库的查询系统,包括客户端、解析器、优化器、执行器、外部数据包装器和数据字典,所述客户端、解析器、优化器、执行器依次电信连接,所述外部数据包装器分别与所述优化器和执行器电信连接,并且,所述外部数据包装器通过数据字典与所述解析器电信连接;
其中,所述解析器用于实现对SQL语句的语法解析、语义校验、查询重写的功能;
所述优化器采用基于代价的查询优化(CBO)方式,生成SQL查询计划;
所述外部数据包装器采用回调函数方式,提供FDW对象管理、外部服务器(ForeignServer)对象管理、外部表对象管理、用户映射管理的功能;
所述数据字典用于定义FDW对象、外部服务器、外部表、用户映射相关元数据信息。
综上所述,借助于本发明的上述技术方案,本发明解决了针对图数据库查询系统属性难以进行复杂查询的问题,通过SQL的全文检索功能可以对文档属性进行更符合条件的过滤,如果不使用全文检索,只能使用普通的like检索,这种方式的检索效果不好,比如搜索friend时候,就不能将friendly,friends等检索出来。使用SQL的全文检索功能,则可以解决这个问题,用户通过SQL语句向系统发送请求,系统将涉及图查询检索的请求下发图数据库查询,基于返回的结果对其进行全文检索,解决了针对目前针对图的复杂属性查询困难的问题,减轻用户开发系统的负担,对图数据库的检索很有意义,同时由于引入了SQL查询系统,可以通过SQL对映射到该系统的异构数据源进行关联查询,即可以将图数据库,关系数据库存储的数据一起关联查询,减轻用户开发系统的负担。
同时由于引入了SQL查询系统,可以通过SQL对映射到该系统的异构数据源进行关联查询,即可以将图数据库,关系数据库存储的数据一起关联查询,减轻用户开发系统的负担。
简要的对发明中提到的术语进行说明如下:
节点:节点是图主要的数据元素,通过关系连接到其他节点。节点可以具有一个或多个属性(即存储为键/值对的属性)。
关系:连接两个节点,代表两个节点的关联方式。关系可以有一个或多个属性(即存储为键/值对的属性)。
全文检索:将文档进行分词,将搜索条件分词,根据分词结果对文档进行匹配查询。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
- 上一篇:一种医用注射器针头装配设备
- 下一篇:标签分类的处理方法和装置