CN111291137B - 基于实体关系的搜索方法和*** - Google Patents
基于实体关系的搜索方法和*** Download PDFInfo
- Publication number
- CN111291137B CN111291137B CN202010075163.1A CN202010075163A CN111291137B CN 111291137 B CN111291137 B CN 111291137B CN 202010075163 A CN202010075163 A CN 202010075163A CN 111291137 B CN111291137 B CN 111291137B
- Authority
- CN
- China
- Prior art keywords
- entity
- entities
- search
- expression
- starting point
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 230000014509 gene expression Effects 0.000 claims abstract description 123
- 238000013507 mapping Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
Images
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/288—Entity relationship models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2425—Iterative querying; Query formulation based on the results of a preceding query
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种基于实体关系的搜索方法,该方法包括:接收搜索请求,所述搜索请求中包括搜索表达式;根据所述搜索表达式从多个实体中搜索得到多个起点实体,所述多个实体包括所述多个起点实体和多个目标实体;根据实体类型关系图获取所述多个起点实体与所述多个目标实体之间的N条目标路径,所述实体类型关系图是基于所述多个实体之间的实体类型关系生成的,N为≥1的正整数;及根据所述N条目标路径在实体关系表中执行搜索操作,以得到关联搜索结果。本申请实施例可以通过实体类型关系表得到N条目标路径,通过这N条目标路径在实体关联表中进行关联搜索,从而降低关联搜索复杂度、减少关联搜索次数及提高关联搜索效率。
Description
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种基于实体关系的搜索方法、***、计算机设备及计算机可读存储介质。
背景技术
随着互联网的发展,很多实体信息都存储在数据库中。数据库又可以分为关系型数据库和非关系型数据库,其中,关系型数据库:是在给定的应用领域中,由所有实体及实体之间联系的集合构成的。在关系型数据库中,主要是采用关系模型来组织实体信息,以行和列的方式来储存实体信息。多张数据表之间存在着复杂的关系,而且,随着数据表数量的增加,数据的管理越来越复杂,数据操作的瓶颈也出现在对多张表进行的操作中。关系数据库采用结构化搜索语言进行信息搜索,并支持对数据库中的数据进行增删改查操作以及跨表搜索功能。
然,面对关联搜索时,基于关系数据库实现较为复杂且搜索速度慢,不能满足搜索需求。
发明内容
本申请实施例的目的是提供一种基于实体关系的搜索方法、***、计算机设备及计算机可读存储介质,可以用于解决关系数据库进行关联搜索时的实现手段复杂且搜索速度慢的问题。
本申请实施例的一个方面提供了一种基于实体关系的搜索方法,所述方法包括:接收搜索请求,所述搜索请求中包括搜索表达式;根据所述搜索表达式从多个实体中搜索得到多个起点实体,所述多个实体包括所述多个起点实体和多个目标实体;根据实体类型关系图获取所述多个起点实体与所述多个目标实体之间的N条目标路径,所述实体类型关系图是基于所述多个实体之间的实体类型关系生成的,N为≥1的正整数;及根据所述N条目标路径在实体关系表中执行搜索操作,以得到关联搜索结果。
可选的,根据所述搜索表达式从多个实体中搜索得到多个起点实体,包括:解析所述搜索表达式,并将所述搜索表达式转换为后缀表达式,所述后缀表达式包括一个或多个单独表达式;根据所述一个或多个单独表达式搜索得到一个或多个实体集合,每个实体集合对应一个单独表达式;及根据所述后缀表达式对所述一个或多个实体集合进行运算,得到包括所述多个起点实体的起点实体集合。
可选的,根据所述一个或多个单独表达式搜索得到一个或多个实体集合,包括:根据各个单独表达式中的key和key值,搜索得到各个单独表达式的实体集合。
可选的,根据所述一个或多个单独表达式搜索得到一个或多个实体集合,包括:当所述一个或多个单独表达式中包括没有key的单独表达式时:对这个没有key的单独表达式进行属性映射操作,为这个没有key的单独表达式映射至少一个key;及根据这个没有key的单独表达式和所述至少一个key,执行搜索操作。
可选的,根据实体类型关系图获取所述多个起点实体与所述多个目标实体之间的N条目标路径,包括:计算每个起点实体与所述多个目标实体之间的若干条最短路径,以得到所述多个起点实体与所述多个目标实体之间的N条最短路径,所述N条最短路径确定为所述N条目标路径。
可选的,计算每个起点实体与所述多个目标实体之间的若干条最短路径,包括:判断是否要求经过指定路径,所述指定路径为起点实体到各个目标实体的共用路径;如果要求经过所述指定路径,则获取所述指定路径的指定路径起点和指定路径终点;计算所述起点实体和所述指定路径起点之间的多个第一最短路径;计算所述指定路径终点和所述多个目标实体之间的多个第二最短路路径;及根据所述多个第一最短路径、所述指定路径和所述多个第二最短路径,获取所述起点实体和所述多个目标实体之间的若干条最短路径。
可选的,如果要求经过所述指定路径,则获取所述指定路径的指定路径起点和指定路径终点,还包括:判断所述指定路径是否是连通的;如果所述指定路径不是连通的,则判断不存在所述指定路径;及如果所述指定路径是连通的,则获取所述指定路径的指定路径起点和指定路径终点。
本申请实施例的另一个方面还提供了一种基于实体关系的搜索***,所述***包括:接收模块,用于接收搜索请求,所述搜索请求中包括搜索表达式;第一搜索模块,用于根据所述搜索表达式从多个实体中搜索得到多个起点实体,所述多个实体包括所述多个起点实体和多个目标实体;获取模块,用于根据实体类型关系图获取所述多个起点实体与所述多个目标实体之间的N条目标路径,所述实体类型关系图是基于所述多个实体之间的实体类型关系生成的,N为≥1的正整数;第二搜索模块,用于根据所述N条目标路径在实体关系表中执行搜索操作,以得到关联搜索结果。
本申请实施例的再一个方面提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,上述处理器执行上述计算机程序时用于实现如上任一项所述的基于实体关系的搜索方法的步骤。
本申请实施例的又一个方面提供了一种计算机可读存储介质,其上存储有计算机程序,上述计算机程序被处理器执行时用于实现如上任一项所述的基于实体关系的搜索方法的步骤。
本申请实施例提供的基于实体关系的搜索方法、***、计算机设备及计算机可读存储介质,通过搜索表达式搜索得到多个实体,并将这些实体作为起点实体,通过这些起点实体和实体类型关系图得到用于关联搜索的N条目标路径,通过这N条目标路径在实体关联表进行关联搜索,从而降低关联搜索复杂度、减少关联搜索次数及提高关联搜索效率。
附图说明
图1示意性示出了根据本申请实施例一的基于实体关系的搜索方法的流程图;
图2示意性示出了图1中步骤S102的子流程图;
图3示意性示出了图2中步骤S202的子流程图;
图4示意性示出了根据本申请实施例一的基于实体关系的搜索方法的另一流程图;
图5示意性示出了图4中步骤S400的子流程图;
图6示意性示出了图5中步骤S502的子流程图;
图7示意性示出了根据本申请实施例一的基于实体关系的搜索方法的另一流程图;
图8示意性示出了图7中步骤S708的子流程图;
图9示意性示出了根据本申请实施例一在某个应用场景下的搜索页面;
图10示意性示出了根据本申请实施例二的基于实体关系的搜索***的框图;以及
图11示意性示出了根据本申请实施例三的适于实现基于实体关系的搜索方法的计算机设备的硬件架构示意图。
具体实施方式
为了使本申请实施例的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或者无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
实施例一
图1示意性示出了根据本申请实施例一的基于实体关系的搜索方法的流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面以计算机设备2为执行主体进行示例性描述。
如图1所示,该基于实体关系的搜索方法可以包括步骤S100~步骤S106,其中:
步骤S100,接收搜索请求,所述搜索请求中包括搜索表达式。
所述搜索表达式又称之为用户输入条件或搜索条件。所述搜索表达式的规则是可以自定义的,用户可以在这种自定义的规则下,根据希望搜索的内容设计和输入不同的搜索表达式。
以下列举一些示例性的搜索表达式:
“ip:1.1.1.1”,表示包含ip为1.1.1.1的实体信息;
“domain:www.qianxin.com”,表示包含URL为http://www.qianxin.com的实体信息;
“hostname:ip-95-220-127-219.bb.netynet.ru”,表示包含hostname为ip-95-220-127-219.bb.netynet.ru的实体信息;
“device_name:web服务器”,表示设备名称为web服务器的实体信息;
“device_type:服务器”,表示设备类型为服务器的实体信息;
“device_vendor:华为”,表示设备厂商是华为的实体信息;
“OS:Linux”,表示操作***为Linux的实体信息;
“device_vendor:华为AND OS:Linux”,则表示同时满足设备厂商是华为和操作***是Linux的实体信息;
以上仅列举了一些简单搜索表达式,当然,用户可以根据需求利用“与”、“或”、“非”等各类运算符号来构建更加复杂的搜索表达式,这些设计没有超出本申请的保护范围。
步骤S102,根据所述搜索表达式从多个实体中搜索得到多个起点实体,所述多个实体包括所述多个起点实体和多个目标实体。
所述多个实体和所述多个实体之间的实体类型关系被预先存储在关系数据库中。如下表:
每个实体具有一个或多个实体类型,每个实体可以通过它的实体类型和其他实体建立关联关系,从而建立实体类型关系图,所述实体类型关系图以各个实体为节点,以实体类型作为节点之间的关联关系。例如,当实体A的实体类型包括Linux和实体B的实体类型也包括Linux,则在实体A和实体B之间建立有以Linux为纽带的单向或双向的关联关系。
在示例性的实施例中,为了能够实现高效地搜索操作,如图2所示,所述步骤S102可以进一步包括如下步骤:步骤S200,解析所述搜索表达式,并将所述搜索表达式转换为后缀表达式,所述后缀表达式可以包括一个或多个单独表达式;步骤S202,根据所述一个或多个单独表达式搜索得到一个或多个实体集合,每个实体集合对应一个单独表达式;步骤S204,根据所述后缀表达式对所述一个或多个实体集合进行运算,得到包括所述多个起点实体的起点实体集合。
在示例性的实施例中,本实施例可以在搜索表达式中部分信息缺失情形下,进行有效地搜索操作,如图3所示,所述步骤S202还可以进一步包括如下步骤:步骤S300,根据各个单独表达式中的key和key值,搜索得到各个单独表达式的实体集合。S302,当所述一个或多个单独表达式中包括没有key的单独表达式时:对这个没有key的单独表达式进行属性映射操作,为这个没有key的单独表达式映射至少一个key;根据这个没有key的单独表达式和所述至少一个key,执行搜索操作。
以某个单独表达式为例:“device_vendor:华为”,其中“device_vendor”为key,“华为”为key值,通过这个单独表达式可以搜索到设备厂商是华为的所有实体。
以另一个单独表达式为例:“80”,这个单独表达式没有key,计算机设备2可以对“80”进行属性映射操作,通过映射操作得到“port”、“http”、“ip”等key,然后搜索满足以下任意一个条件的所有实体并形成一个实体集合:端口号包含80、http包含80或ip包含80等。
以由两个单独表达式通过运算符组合的搜索表达式为例:“device_vendor:华为AND OS:Linux”,该搜索表达式为一个中缀表达式,计算机设备2可以将该搜索表达式的字符串进行预处理,以数组形式存储运算符“AND”及条件“device_vendor:华为”、“OS:Linux”,然后将该搜索表达式转换为后缀表达式,从而得到两个单独表达式,即:“device_vendor:华为”和“OS:Linux”。计算机设备2基于“device_vendor:华为”搜索得到一个实体集合a,基于“OS:Linux”搜索得到一个实体集合b,并根据后缀表达式中的运算符“AND”将实体集合a和实体集合b取并集,得到所述起点实体集合。
所述起点实体集合中的所有实体均满足以下条件:1、设备厂商是华为;2、操作***是Linux。
计算机设备2在得到起点实体集合之后,可以将所述起点实体集合中的所有实体均作为起点实体,将所述关系数据库中未位于所述起点实体集合中的其他实体作为目标实体,这些目标实体中有部分目标实体是和所述起点实体集合中的一个或多个实体具有关联关系的,本申请旨在根据实体类型关系图、各个起点实体以及各个起点实体的实体类型将这部分目标实体一并搜索出来,以实现关联搜索目的。
步骤S104,根据实体类型关系图获取所述多个起点实体与所述多个目标实体之间的N条目标路径。
所述实体类型关系图是基于所述多个实体之间的实体类型关系生成的,N为≥1的正整数。
在示例性的实施例中,如图4所示,所述步骤S104还可以进一步包括如下步骤:步骤S400,计算每个起点实体与所述多个目标实体之间的若干条最短路径,以得到所述多个起点实体与所述多个目标实体之间的N条最短路径,所述N条最短路径确定为所述N条目标路径。以起点实体A、B、C、…为例,计算机设备2可以根据起点实体A及其实体类型在所述实体类型关系图中寻找起点实体A与所述多个目标实体之间的若干条最短路径。可以理解的是,如果起点实体A和某个目标实体之间没有路径,则可以说明这个目标实体与起点实体A不具有直接或间接的关联关系。在一些实施例中,计算机设备2可以通过贪心算法、深度优先算法、单源最短路径(Dijkstra)算法等来获取起点实体A与所述多个目标实体之间的若干条最短路径。同样的,计算机设备2可以计算起点实体B与所述多个目标实体之间的若干条最短路径,计算起点实体C与所述多个目标实体之间的若干条最短路径,…。上述这些最短路径构成了所述多个起点实体与所述多个目标实体之间的N条最短路径。这N条最短路径可以作为后续关联搜索操作的依据,提升关联搜索效率。
在示例性的实施例中,如图5所示,所述步骤S400还可以进一步包括如下步骤:步骤S500,判断是否要求经过指定路径,所述指定路径为起点实体到各个目标实体的共用路径;步骤S502,如果要求经过所述指定路径,则获取所述指定路径的指定路径起点和指定路径终点;步骤S504,计算所述起点实体和所述指定路径起点之间的多个第一最短路径;步骤S506,计算所述指定路径终点和所述多个目标实体之间的多个第二最短路路径;步骤S508,根据所述多个第一最短路径、所述指定路径和所述多个第二最短路径,获取所述起点实体和所述多个目标实体之间的若干条最短路径。以起点实体A为例,计算机设备2可以计算起点实体A和指定路径起点之间的多条第一最短路径以及指定路径终端和所述多个目标实体之间的多条第二最短路径,从而得到起点实体A和所述多个目标实体之间的若干条最短路径。该若干条最短路径均经过了所述指定路径,并作为N条最短路径的一部分,用于作为后续关联搜索操作的依据,提升关联搜索效率。不难理解,如果起点实体包括起点实体A、起订实体B和起订实体C,则N条最短路径由以下路径构成:起点实体A和所述多个目标实体之间的若干条最短路径、起点实体B和所述多个目标实体之间的若干条最短路径,以及起点实体C和所述多个目标实体之间的若干条最短路径。
所述指定路径又称之为必经路径,是起点实体到任何一个目标实体均需通过的必经路径。所述指定路径可能是计算机预先设定的,也可能是在搜索表达式中所设定的,当没有被要求经过指定路径时,则直接使用Dijkstra算法等获取所述多个起点实体与所述多个目标实体的N条最短路径;当有被要求经过指定路径时,则执行步骤S502~S508。
在示例性的实施例中,如图6所示,所述步骤S502还可以进一步包括如下步骤:步骤S600,判断所述指定路径是否是连通的;步骤S602,如果所述指定路径不是连通的,则判断不存在所述指定路径;步骤S604,如果所述指定路径是连通的,则获取所述指定路径的指定路径起点和指定路径终点。当判断不存在所述指定路径是,计算机设备2可以结束该次搜索操作,即结束无效搜索操作。
指定路径是否连通,是指所述指定路径的指定路径起点和所述指定路径终端是否是连通的,即指定路径起点对应的实体和指定路径终点对应的实体之间的是否存在直接或间接的关联关系。
步骤S106,根据所述N条目标路径在实体关系表中执行搜索操作,以得到关联搜索结果。
所述实体关系表为所述关系数据库中用于存储各个实体的实体信息(如实体关系)的数据表。
所述搜索到的内容,可以是关联实体的关联实体信息。
在本实施例中,引入了实体类型关系图和路径搜索概念,来简化搜索流程和提升搜索效率。计算机设备2可以通过搜索表达式直接搜索得到多个实体的实体信息,并将这些实体作为起点实体,通过这些起点实体和实体类型关系图得到用于关联搜索其他关联实体的N条目标路径,通过这N条目标路径在实体关联表中关联搜索到这些起点实体的关联实体的关联实体信息,从而减少关联搜索次数及提高关联搜索效率。
为了使本申请更加清晰易懂,如图7所示,以下提供一个具体示例:
步骤S700,接收搜索请求,所述搜索请求中包括搜索表达式;
步骤S702,解析所述搜索表达式,将所述搜索表达式由中缀表达式转换为后缀表达式,以得到多个单独表达式;
步骤S704,根据所述多个单独表达式从关系数据库中搜索得到多个实体集合。
如果其中某个单独表达式包括key,则直接执行搜索操作;
如果其中某个单独表达式包括没有指定key的值,则对这个不含key的单独表达式进行属性映射操作以得到多个key,并根据这个没有指定key的值和所述多个key执行搜索操作。
步骤S706,根据多个单独表达式对应的多个实体集合进行集合运算,得到所述搜索表达式的起点实体集合。所述起点实体集合中的所有实体均为起点实体。关系数据库中的其他实体(即,没有位于所述起点实体集合中的实体)均为目标实体。
步骤S708,根据多个起点实体和预先构建的实体类型关系图,计算多个起点实体和多个目标实体的N条最短路径。
如图8所示,以其中一个起点实体A为例,介绍获取最短路径的步骤:步骤S800,获取起点实体A的实体类型;S802,判断是否要求经过指定路径;如果有,则进入步骤S804,否则进入步骤S814;S804,判断所述指定路径是否是连通的;如果是,进入步骤S806,否则判断不存在所述指定路径;步骤S806,获取所述指定路径的指定路径起点和指定路径终点;步骤S808,通过深度优先算法等计算所述起点实体A到所述指定路径起点的多个第一最短路径;步骤S810,通过Dijkstra算法等计算所述指定路径终点和所述多个目标实体之间的多个第二最短路路径;步骤S812,根据所述多个第一最短路径、所述指定路径和所述多个第二最短路径,获取所述起点实体A与所述多个目标实体之间的若干条最短路径;步骤S814,直接使用Dijkstra算法等获取起点实体A与所述多个目标实体之间的若干条最短路径。
步骤S710,根据所述N条最短路径搜索实体关系表,以搜索得到一个或多个起点实体关联的关联实体。
本实施例所述的搜索方法可以用在各类场景中,如网络安全场景、资产管理场景等。以资产管理场景为例,如图9所示,如果搜索表达式为“ip:1.1.1.1AND deviceName:设备”,即搜索到IP为1.1.1.1及设备名称包含“设备”所有实体及其关联实体。
实施例二
图10示出了根据本申请实施例二的基于实体关系的搜索***的框图,该基于实体关系的搜索***可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例中各程序模块的功能。
如图10所示,所述基于实体关系的搜索***1000可以包括以下组成部分:
接收模块1002,用于接收搜索请求,所述搜索请求中包括搜索表达式;
第一搜索模块1004,用于根据所述搜索表达式从多个实体中搜索得到多个起点实体,所述多个实体包括所述多个起点实体和多个目标实体;
获取模块1006,用于根据实体类型关系图获取所述多个起点实体与所述多个目标实体之间的N条目标路径,所述实体类型关系图是基于所述多个实体之间的实体类型关系生成的,N为≥1的正整数;及
第二搜索模块1008,用于根据所述N条目标路径在实体关系表中执行搜索操作,以得到关联搜索结果。
在示例性的实施例中,第一搜索模块1004,还用于:解析所述搜索表达式,并将所述搜索表达式转换为后缀表达式,所述后缀表达式包括一个或多个单独表达式;根据所述一个或多个单独表达式搜索得到一个或多个实体集合,每个实体集合对应一个单独表达式;及根据所述后缀表达式对所述一个或多个实体集合进行运算,得到包括所述多个起点实体的起点实体集合
在示例性的实施例中,第一搜索模块1004,还用于:根据各个单独表达式中的key和key值,搜索得到各个单独表达式的实体集合。
在示例性的实施例中,第一搜索模块1004,还用于:当所述一个或多个单独表达式中包括没有key的单独表达式时:对这个没有key的单独表达式进行属性映射操作,为这个没有key的单独表达式映射至少一个key;及根据这个没有key的单独表达式和所述至少一个key,执行搜索操作。
在示例性的实施例中,获取模块1006,还用于:计算每个起点实体与所述多个目标实体之间的若干条最短路径,以得到所述多个起点实体与所述多个目标实体之间的N条最短路径,所述N条最短路径确定为所述N条目标路径。
在示例性的实施例中,获取模块1006,还用于:判断是否要求经过指定路径,所述指定路径为起点实体到各个目标实体的共用路径;如果要求经过所述指定路径,则获取所述指定路径的指定路径起点和指定路径终点;计算所述起点实体和所述指定路径起点之间的多个第一最短路径;计算所述指定路径终点和所述多个目标实体之间的多个第二最短路路径;根据所述多个第一最短路径、所述指定路径和所述多个第二最短路径,获取所述起点实体和所述多个目标实体之间的若干条最短路径。
在示例性的实施例中,获取模块1006,还用于:如果要求经过所述指定路径,则判断所述指定路径是否是连通的;如果所述指定路径不是连通的,则判断不存在所述指定路径;及如果所述指定路径是连通的,则获取所述指定路径的指定路径起点和指定路径终点。
实施例三
图11示意性示出了根据本申请实施例三的适于实现基于实体关系的搜索方法的计算机设备的硬件架构示意图。本实施例中,计算机设备2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图11所示,计算机设备2至少包括但不限于:可通过***总线相互通信连接存储器21、处理器22、网络接口23。其中:
存储器21至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备2的内部存储模块,例如该计算机设备2的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备2的外部存储设备,例如该计算机设备2上配备的插接式硬盘,智能存储卡(SmartMedia Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,存储器21还可以既包括计算机设备2的内部存储模块也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备2的操作***和各类应用软件,例如基于实体关系的搜索方法的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器22在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备2的总体操作,例如执行与计算机设备2进行数据交互或者通信相关的控制和处理等。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据。
网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在计算机设备2与其他计算机设备之间建立通信连接。例如,网络接口23用于通过网络将计算机设备2与外部终端相连,在计算机设备2与外部终端之间的建立数据传输通道和通信连接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯***(GlobalSystem of Mobile communication,简称为GSM)、宽带码分多址(Wideband Code DivisionMultiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图11仅示出了具有部件21-23的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器21中的基于实体关系的搜索方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器22)所执行,以完成本申请。
实施例四
本实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的基于实体关系的搜索方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作***和各类应用软件,例如实施例中的基于实体关系的搜索方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (8)
1.一种基于实体关系的搜索方法,其特征在于,所述方法包括:
接收搜索请求,所述搜索请求中包括搜索表达式;
根据所述搜索表达式从多个实体中搜索得到多个起点实体,所述多个实体包括所述多个起点实体和多个目标实体;
根据实体类型关系图获取所述多个起点实体与所述多个目标实体之间的N条目标路径,所述实体类型关系图是基于所述多个实体之间的实体类型关系生成的,N为≥1的正整数;及
根据所述N条目标路径在实体关系表中执行搜索操作,以得到关联搜索结果
其中,所述根据所述搜索表达式从多个实体中搜索得到多个起点实体,包括:
解析所述搜索表达式,并将所述搜索表达式转换为后缀表达式,所述后缀表达式包括一个或多个单独表达式;
根据所述一个或多个单独表达式搜索得到一个或多个实体集合,每个实体集合对应一个单独表达式;及
根据所述后缀表达式对所述一个或多个实体集合进行运算,得到包括所述多个起点实体的起点实体集合;
其中,所述根据实体类型关系图获取所述多个起点实体与所述多个目标实体之间的N条目标路径,包括:
计算每个起点实体与所述多个目标实体之间的若干条最短路径,以得到所述多个起点实体与所述多个目标实体之间的N条最短路径,所述N条最短路径确定为所述N条目标路径。
2.根据权利要求1所述的基于实体关系的搜索方法,其特征在于,根据所述一个或多个单独表达式搜索得到一个或多个实体集合,包括:
根据各个单独表达式中的key和key值,搜索得到各个单独表达式的实体集合。
3.根据权利要求1所述的基于实体关系的搜索方法,其特征在于,根据所述一个或多个单独表达式搜索得到一个或多个实体集合,包括:
当所述一个或多个单独表达式中包括没有key的单独表达式时:
对这个没有key的单独表达式进行属性映射操作,为这个没有key的单独表达式映射至少一个key;及
根据这个没有key的单独表达式和所述至少一个key,执行搜索操作。
4.根据权利要求1所述的基于实体关系的搜索方法,其特征在于,计算每个起点实体与所述多个目标实体之间的若干条最短路径,包括:
判断是否要求经过指定路径,所述指定路径为起点实体到各个目标实体的共用路径;
如果要求经过所述指定路径,则获取所述指定路径的指定路径起点和指定路径终点;
计算所述起点实体和所述指定路径起点之间的多个第一最短路径;
计算所述指定路径终点和所述多个目标实体之间的多个第二最短路路径;
根据所述多个第一最短路径、所述指定路径和所述多个第二最短路径,获取所述起点实体和所述多个目标实体之间的若干条最短路径。
5.根据权利要求4所述的基于实体关系的搜索方法,其特征在于,如果要求经过所述指定路径,则获取所述指定路径的指定路径起点和指定路径终点,还包括:
判断所述指定路径是否是连通的;
如果所述指定路径不是连通的,则判断不存在所述指定路径;及
如果所述指定路径是连通的,则获取所述指定路径的指定路径起点和指定路径终点。
6.一种基于实体关系的搜索***,其特征在于,所述***包括:
接收模块,用于接收搜索请求,所述搜索请求中包括搜索表达式;
第一搜索模块,用于根据所述搜索表达式从多个实体中搜索得到多个起点实体,所述多个实体包括所述多个起点实体和多个目标实体;
获取模块,用于根据实体类型关系图获取所述多个起点实体与所述多个目标实体之间的N条目标路径,所述实体类型关系图是基于所述多个实体之间的实体类型关系生成的,N为≥1的正整数;及
第二搜索模块,用于根据所述N条目标路径在实体关系表中执行搜索操作,以得到关联搜索结果;
其中,所述第一搜索模块,还用于:解析所述搜索表达式,并将所述搜索表达式转换为后缀表达式,所述后缀表达式包括一个或多个单独表达式;根据所述一个或多个单独表达式搜索得到一个或多个实体集合,每个实体集合对应一个单独表达式;及根据所述后缀表达式对所述一个或多个实体集合进行运算,得到包括所述多个起点实体的起点实体集合;
其中,所述获取模块,还用于:计算每个起点实体与所述多个目标实体之间的若干条最短路径,以得到所述多个起点实体与所述多个目标实体之间的N条最短路径,所述N条最短路径确定为所述N条目标路径。
7.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时用于实现权利要求1至5任一项所述基于实体关系的搜索方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时用于实现权利要求1至5任一项所述基于实体关系的搜索方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010075163.1A CN111291137B (zh) | 2020-01-22 | 2020-01-22 | 基于实体关系的搜索方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010075163.1A CN111291137B (zh) | 2020-01-22 | 2020-01-22 | 基于实体关系的搜索方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111291137A CN111291137A (zh) | 2020-06-16 |
CN111291137B true CN111291137B (zh) | 2023-05-09 |
Family
ID=71020154
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010075163.1A Active CN111291137B (zh) | 2020-01-22 | 2020-01-22 | 基于实体关系的搜索方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111291137B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113569012B (zh) * | 2021-07-28 | 2023-12-26 | 卫宁健康科技集团股份有限公司 | 医疗数据查询方法、装置、设备及存储介质 |
CN114925118B (zh) * | 2022-06-09 | 2023-05-16 | 北京百度网讯科技有限公司 | 跨表搜索方法、装置、设备以及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109215796A (zh) * | 2018-08-14 | 2019-01-15 | 平安医疗健康管理股份有限公司 | 搜索方法、装置、计算机设备和存储介质 |
CN110543592A (zh) * | 2019-08-27 | 2019-12-06 | 北京百度网讯科技有限公司 | 信息搜索方法、装置以及计算机设备 |
CN110704434A (zh) * | 2019-09-24 | 2020-01-17 | 北京百度网讯科技有限公司 | 图谱最短路径的查询方法、装置、电子设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110167085A1 (en) * | 2008-09-12 | 2011-07-07 | Haschek Hans M | System and Method for Searching for a Target Contact and for Generating a Contact Path |
-
2020
- 2020-01-22 CN CN202010075163.1A patent/CN111291137B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109215796A (zh) * | 2018-08-14 | 2019-01-15 | 平安医疗健康管理股份有限公司 | 搜索方法、装置、计算机设备和存储介质 |
CN110543592A (zh) * | 2019-08-27 | 2019-12-06 | 北京百度网讯科技有限公司 | 信息搜索方法、装置以及计算机设备 |
CN110704434A (zh) * | 2019-09-24 | 2020-01-17 | 北京百度网讯科技有限公司 | 图谱最短路径的查询方法、装置、电子设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
林泽琦 ; 赵俊峰 ; 谢冰 ; .一种基于图数据库的代码结构解析与搜索方法.计算机研究与发展.2016,(03),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111291137A (zh) | 2020-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109299110B (zh) | 数据查询方法、装置、存储介质和电子设备 | |
CN107526777B (zh) | 一种基于版本号对文件进行处理的方法及设备 | |
US8903800B2 (en) | System and method for indexing food providers and use of the index in search engines | |
CN110457363B (zh) | 基于分布式数据库的查询方法、装置及存储介质 | |
US10331694B2 (en) | Data sanitization and normalization and geocoding methods | |
CN107809383B (zh) | 一种基于mvc的路径映射方法及装置 | |
CN108804516B (zh) | 相似用户查找装置、方法及计算机可读存储介质 | |
CN111291137B (zh) | 基于实体关系的搜索方法和*** | |
WO2018010491A1 (zh) | 一种生成业务路径的方法和装置 | |
US10489493B2 (en) | Metadata reuse for validation against decentralized schemas | |
CN110413845B (zh) | 基于物联网操作***的资源存储方法及装置 | |
CN113282799B (zh) | 节点的操作方法、装置、计算机设备和存储介质 | |
CN112685175B (zh) | 一种服务拓扑图的构建方法、装置和计算机可读存储介质 | |
CN104320312A (zh) | 网络应用安全测试工具及模糊测试用例生成方法和*** | |
CN112800197A (zh) | 一种目标故障信息的确定方法和装置 | |
WO2021184577A1 (zh) | 服务器ip地址获取方法、装置、设备及存储介质 | |
JP2009217426A (ja) | 情報処理装置、リソース同定プログラム、リソース同定方法 | |
CN110674427B (zh) | 响应网页访问请求的方法、装置、设备及存储介质 | |
CN115438070A (zh) | 针对图数据库的查询语句自动补全的方法及装置 | |
CN114461247A (zh) | 热更新方法、装置、电子设备和计算机可读介质 | |
CN114238334A (zh) | 异构数据编码、解码方法和装置、计算机设备和存储介质 | |
CN114048219A (zh) | 图数据库更新方法及装置 | |
CN113688289B (zh) | 数据包关键字段匹配方法、装置、设备及存储介质 | |
CN112639761B (zh) | 一种为数据建立索引的方法以及装置 | |
CN114238407A (zh) | 基于分库分表中间件的预编译方法与*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088 Applicant after: QAX Technology Group Inc. Applicant after: Qianxin Wangshen information technology (Beijing) Co.,Ltd. Address before: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088 Applicant before: QAX Technology Group Inc. Applicant before: LEGENDSEC INFORMATION TECHNOLOGY (BEIJING) Inc. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |