CN113449003B - 信息查询的方法、装置、电子设备及介质 - Google Patents
信息查询的方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN113449003B CN113449003B CN202110767672.5A CN202110767672A CN113449003B CN 113449003 B CN113449003 B CN 113449003B CN 202110767672 A CN202110767672 A CN 202110767672A CN 113449003 B CN113449003 B CN 113449003B
- Authority
- CN
- China
- Prior art keywords
- query
- information
- attribute
- matching
- database
- 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 61
- 238000004891 communication Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 description 7
- 238000010276 construction Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000002776 aggregation Effects 0.000 description 4
- 238000004220 aggregation Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
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/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24573—Query processing with adaptation to user needs using data annotations, e.g. user-defined metadata
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- 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/23—Updating
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种信息查询的方法、装置、电子设备及介质,上述信息查询的方法包括:接收用户的查询请求,上述查询请求携带有针对查询对象的属性查询信息;基于上述属性查询信息,在预先构建的数据库中进行信息匹配,上述数据库基于AVL树来进行存储对象的属性信息的存储;以及根据上述信息匹配的结果来输出信息查询结果。
Description
技术领域
本公开涉及互联网技术领域,尤其涉及一种信息查询的方法、装置、电子设备及介质。
背景技术
随着互联网技术的发展,需要对各种类型对象的属性信息进行存储和查询。以电子商务(简称电商)领域为例,电商系统需要在数据库中将不同商户的各类商品的属性信息进行存储,在消费者需要咨询相关商品的属性信息时,电商系统的智能应答机器人会从数据库中进行查询。
在实现本公开构思的过程中,发明人发现相关技术中至少存在如下技术问题:目前大部分电商系统通过关系型数据库来存储商品的属性信息,有的关系型数据库方案中,通过为每种商品类型构建一张表,针对不同类型的商品需要创建大量的表格,在进行多类商品属性信息的高并发查询时,存在查询效率低下的问题;有的关系型数据库方案中,是将不同类型商品属性存在一张聚合表里面,在高并发请求下,数据库的性能会急剧下降甚至出现异常,导致查询及更新库存失败,大大降低了查询的效率。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开的实施例提供了一种信息查询的方法、装置、电子设备及介质。
第一方面,本公开的实施例提供了一种信息查询的方法。上述方法包括:接收用户的查询请求,上述查询请求携带有针对查询对象的属性查询信息;基于上述属性查询信息,在预先构建的数据库中进行信息匹配,上述数据库基于AVL树来进行存储对象的属性信息的存储;以及根据上述信息匹配的结果来输出信息查询结果。
根据本公开的实施例,上述基于上述属性查询信息,在预先构建的数据库中进行信息匹配,包括:基于上述属性查询信息,生成针对查询对象的查询三元组;以及基于上述针对查询对象的查询三元组,与上述数据库中的AVL树存储的信息进行匹配。
根据本公开的实施例,上述针对查询对象的属性查询信息包括查询对象的ID、属性ID和属性值至少一种;上述查询对象的ID、属性ID和属性值作为上述查询三元组的三个元素。其中,上述基于上述属性查询信息,生成针对查询对象的查询三元组,包括:在上述属性查询信息只包括查询对象的ID、属性ID和属性值中的部分信息的情况下,生成模糊查询三元组,缺失的信息所对应的元素采用通配符表示,以用于进行模糊匹配;在上述属性查询信息包括查询对象的ID、属性ID和属性值的情况下,生成精确查询三元组,上述精确查询三元组中的三个元素均为确定值。
根据本公开的实施例,上述基于上述针对查询对象的查询三元组,与上述数据库中的AVL树存储的信息进行匹配,包括:基于上述查询对象对应的所属方标识,在上述数据库中确定与上述所属方标识关联的候选AVL树;确定上述查询三元组中各个元素的匹配优先级顺序;基于上述匹配优先级顺序,确定与上述匹配优先级顺序对应的目标索引类型;在上述候选AVL树中确定与上述目标索引类型匹配的目标AVL树;以及针对上述查询三元组的各个元素,基于上述匹配优先级顺序与上述目标AVL树中各个节点的信息进行匹配。
根据本公开的实施例,上述匹配优先级顺序为上述查询三元组中各个元素的默认排列顺序、或者为上述查询请求中指定的先后匹配顺序。
根据本公开的实施例,上述根据上述信息匹配的结果来输出信息查询结果,包括:在得到与上述属性查询信息匹配的目标AVL树节点的情况下,将上述目标AVL树节点的信息作为查询结果进行输出;在遍历上述数据库,确定不存在与上述属性查询信息匹配的目标AVL树节点的情况下,输出信息查询失败的提示;其中,上述不存在与上述属性查询信息匹配的目标AVL树节点,包括以下情形的一种:不存在候选AVL树;或者,存在候选AVL树,但是不存在目标AVL树;或者,存在候选AVL树且存在目标AVL树,但是不存在与上述属性查询信息匹配的目标AVL树节点。
根据本公开的实施例,上述方法还包括:构建数据库。其中,上述构建数据库包括:获取待存储对象的属性信息及对应的所属方标识,上述待存储对象的属性信息包括:待存储对象的ID、属性ID和属性值;将上述待存储对象的属性信息以三元组形式进行存储,得到存储对象的三元组属性信息;针对每个所属方标识所对应的目标待存储对象,将上述存储对象的三元组属性信息作为AVL树的各个节点,并基于预设的索引类型来对各个节点进行排列,进而构建得到AVL树;以及将构建得到的AVL树和对应的所属方标识进行关联后并存储,以得到数据库。
根据本公开的实施例,上述预设的索引类型包括以下至少一种:第一索引类型:依次按照待存储对象的ID、属性ID和属性值的比较顺序来排列各个节点;第二索引类型:依次按照待存储对象的ID、属性值和属性ID的比较顺序来排列各个节点;第三索引类型:依次按照待存储对象的属性ID、ID和属性值的比较顺序来排列各个节点;第四索引类型:依次按照待存储对象的属性ID、属性值和ID的比较顺序来排列各个节点;第五索引类型:依次按照待存储对象的属性值、ID和属性ID的比较顺序来排列各个节点;第六索引类型:依次按照待存储对象的属性值、属性ID和ID的比较顺序来排列各个节点。
根据本公开的实施例,上述方法还包括:更新数据库,上述更新数据库包括:获取上述数据库的更新信息,上述更新信息包括:新增待存储对象、或者更改原有待存储对象的属性信息;根据上述更新信息来增加关于新增待存储对象的AVL树或者更新原有AVL树的结构,以得到更新后的数据库。
第二方面,本公开的实施例提供了一种用于信息查询的装置。上述装置包括:查询请求接收模块、信息匹配模块以及查询结果输出模块。上述查询请求接收模块用于接收用户的查询请求,上述查询请求携带有针对查询对象的属性查询信息。上述信息匹配模块,用于基于上述属性查询信息,在预先构建的数据库中进行信息匹配,上述数据库基于AVL树来存储对象的属性信息。上述查询结果输出模块用于根据上述信息匹配的结果来输出信息查询结果。
第三方面,本公开的实施例提供了一种电子设备。上述电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现如上所述的信息查询的方法。
第四方面,本公开的实施例提供了一种计算机可读存储介质。上述计算机可读存储介质上存储有计算机程序,上述计算机程序被处理器执行时实现如上所述的信息查询的方法。
本公开实施例提供的上述技术方案与现有技术相比至少具有如下优点的部分或全部:
通过基于AVL树来进行存储对象的属性信息的存储,在对查询对象进行属性查询时,能够通过对AVL树的各个节点存储的信息与查询信息进行信息匹配,实现信息的高效查询,在高并发大流量场景下,拥有更快的响应速度,能够提升查询效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出了适用于本公开实施例的信息查询的方法和装置的系统架构;
图2示意性示出了根据本公开一实施例的信息查询的方法的流程图;
图3示意性示出了根据本公开实施例的操作S22的详细实施流程图;
图4示意性示出了根据本公开实施例的子操作S221的实施过程;
图5示意性示出了根据本公开实施例的子操作S222的详细实施流程图;
图6示意性示出了根据本公开实施例的操作S23的实施过程;
图7示意性示出了根据本公开另一实施例的信息查询的方法的流程图;
图8示意性示出了根据本公开实施例的操作S71的详细实施流程图;
图9示意性示出了根据本公开又一实施例的信息查询的方法的流程图;
图10示意性示出了根据本公开实施例的操作S91的详细实施流程图;
图11示意性示出了根据本公开实施例的用于信息查询的装置的结构框图;以及
图12示意性示出了本公开实施例提供的电子设备的结构框图。
具体实施方式
本公开的实施例提供了一种信息查询的方法、装置、电子设备及介质,上述信息查询的方法包括:接收用户的查询请求,上述查询请求携带有针对查询对象的属性查询信息;基于上述属性查询信息,在预先构建的数据库中进行信息匹配,上述数据库基于AVL树来进行存储对象的属性信息的存储;以及根据上述信息匹配的结果来输出信息查询结果。
AVL树为自平衡二叉查找树,它在插入和删除节点时,总要保证任意节点左右子树的高度差不超过1。正是因为有这样的限制,插入一个节点和删除一个节点都有可能调整多个节点的不平衡状态。AVL树形式的存储方式具有查询/查找稳定的优点,同时查找、插入、删除操作的时间复杂度均为O(logN),能够提升查找、数据库更新的效率,其中O表示时间复杂度,N表示AVL树的节点总数。
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
本公开的第一个示例性实施例提供了一种信息查询的方法。
图1示意性示出了适用于本公开实施例的信息查询的方法和装置的系统架构。
参照图1所示,适用于本公开实施例的信息查询的方法和装置的系统架构100包括:终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。发送的消息可以是查询信息,接收的消息可以是查询结果。终端设备101、102、103上可以安装有各类通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101、102、103可以是显示屏并且支持网页浏览的各种电子设备,例如电子设备包括但不限于智能手机、平板电脑、笔记本电脑、台式计算机、智能手表等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103访问的网页进行数据处理提供服务支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的访问请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开实施例所提供的信息查询的方法一般可以由服务器105或具有一定运算能力的终端设备执行。相应地,本公开实施例所提供的信息查询的装置一般可以设置于服务器105中或上述具有一定运算能力的终端设备中。本公开实施例所提供的信息查询的方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的信息查询的装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
例如,在一电子商务的场景中,不同商户的各类商品的属性信息需要在用于为电商平台提供网络服务和数据支持的服务器中进行存储。相关技术中,服务器会将上述数据在关系型数据库中进行存储,例如通过针对每种商品类型构建一张表或者针对不同的商品类型创建一张聚合表。之后在消费者通过电商平台进行商品的属性信息的查询时,电商平台的服务器会从数据库中进行查询,并将查询结果通过电商平台反馈给消费者。
相关技术中,针对每种商品类型构建一张表的关系型数据库方案中,由于数据表是和具体类型对应的,不同的数据表具有不同的结构,因此在查询之前必须知道目标数据的具体类型才能确定查找的数据表。另外,当查询涉及到不同类型的商品时,需要进行多表的连接,这一操作开销巨大,限制了对复杂查询的处理能力;尤其是在进行多类商品属性信息的高并发查询时,存在查询效率低下的问题。此外,商户的商品通常包含丰富的商品类型,因此需要创建大量的数据表,并且这些数据表之间又具有复杂的关系,这为数据的管理增加了很大的难度。
将不同类型商品属性存在一张聚合表里面的数据库方案中,通过建立商品聚合表,聚合表中包括字段机器人ID、商品属性ID、商品id和属性值等聚合到一张表,查询时通过查询条件,将符合条件的数据查询出来返回。复杂查询在这种聚合表上的开销特别大,在高并发请求下,数据库的性能会急剧下降甚至出现异常,导致查询及更新库存失败,大大降低了查询的效率。
有鉴于此,本公开实施例提供的信息查询的方法中,通过基于AVL树来进行存储对象的属性信息的存储,在对查询对象进行属性查询时,能够通过对AVL树的各个节点存储的信息与查询信息进行信息匹配,实现信息的高效查询,在高并发大流量场景下,拥有更快的响应速度,能够提升查询效率。
需要说明的是,尽管本公开的实施场景以电子商务中的各个商户的商品属性信息的查询作为示例,本公开的应用场景可以拓展至各种对象的属性信息的查询中,不局限于电商的场景。示例性的,例如还可以拓展至信息管理的场景,例如用户对图书管理平台中书籍的属性信息的查询,或者本公开的实施场景可以拓展至其他对象的属性信息查询的场景。
图2示意性示出了根据本公开一实施例的信息查询的方法的流程图。
参照图2所示,本公开实施例提供的信息查询的方法,包括以下操作:S21、S22和S23。上述操作S21~S23可以由服务器或具有一定运算能力的终端设备执行。
在操作S21,接收用户的查询请求,上述查询请求携带有针对查询对象的属性查询信息。
在操作S22,基于上述属性查询信息,在预先构建的数据库中进行信息匹配,上述数据库基于AVL树来进行存储对象的属性信息的存储。
在操作S23,根据上述信息匹配的结果来输出信息查询结果。
在电子商务中各个商户的商品的属性信息查询的场景中,上述操作S21~S23以服务器执行作为示例。上述操作S21中,用户可以通过在电商平台的查询界面输入针对目标商品(查询对象)这一查询对象的属性查询信息并点击查询按钮,电商平台将上述查询请求发送给服务器,从而服务器接收到上述携带有针对目标商品(查询对象)的属性查询信息的查询请求。在操作S22中,服务器会在预先通过AVL树来进行存储对象(这里的实施场景中对应于各个商户的商品)的属性信息的存储的数据库中,基于上述属性查询信息和AVL树节点存储的信息进行信息匹配。在操作S23中,服务器根据上述信息匹配的结果,可以对应输出信息查询结果。
在用户对图书管理平台中书籍的属性信息的查询场景中,上述操作S21~S23以服务器执行作为示例。上述操作S21中,用户可以通过在图书管理平台的查询界面输入针对目标书籍(查询对象)这一查询对象的属性查询信息并点击查询按钮,图书管理平台将上述查询请求发送给服务器,从而服务器接收到上述携带有针对目标书籍(查询对象)的属性查询信息的查询请求。在操作S22中,服务器会在预先通过AVL树来进行存储对象(这里的实施场景中对应于各种类型的书籍)的属性信息的存储的数据库中,基于上述属性查询信息和AVL树节点存储的信息进行信息匹配。在操作S23中,服务器根据上述信息匹配的结果,可以对应输出信息查询结果。
上述操作S21~S23也可以由终端设备执行,当上述操作S21~S23由具有一定运算能力的终端设备执行时,数据库的数据缓存于终端设备的本地。
基于上述操作S21~S23,通过基于AVL树来进行存储对象的属性信息的存储,在对查询对象进行属性查询时,能够通过对AVL树的各个节点存储的信息与查询信息进行信息匹配,实现信息的高效查询,在高并发大流量场景下,拥有更快的响应速度,能够提升查询效率。
根据本公开的实施例,在处理高并发、高流量的查询请求时,上述数据库可以是高速缓存数据库,例如为Redis数据库,它是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis数据库是一个高性能的key/value分布式内存数据库,具有复制特性,它不仅支持简单key/value类型的数据,同时还提供列表(list)、散列(hash)等数据结构来满足特殊的业务场景。
图3示意性示出了根据本公开实施例的操作S22的详细实施流程图。
根据本公开的实施例,针对查询对象的属性查询信息包括查询对象的ID、属性ID和属性值至少一种。上述查询对象的ID、属性ID和属性值作为查询三元组的三个元素。
参照图3所示,上述基于上述属性查询信息,在预先构建的数据库中进行信息匹配的操作S22包括以下子操作:S221和S222。
在子操作S221,基于上述属性查询信息,生成针对查询对象的查询三元组。
在子操作S222,基于上述针对查询对象的查询三元组,与上述数据库中的AVL树存储的信息进行匹配。
查询对象的ID用于表征查询对象对应的存储身份,查询对象的属性ID用于表征查询对象的属性对应的存储身份。以查询对象为目标商品为例,则查询对象的ID、属性ID和属性值可以是:目标商品的ID、目标商品的属性ID和目标商品的属性值;目标商品的属性可以包括但不限于以下的一种或多种:上市时间、品牌、型号、颜色、产地、重量、尺码等。
上述基于上述属性查询信息,生成针对查询对象的查询三元组的子操作S221包括以下次子操作:S221a和S221b。
在次子操作S221a,在上述属性查询信息只包括查询对象的ID、属性ID和属性值中的部分信息的情况下,生成模糊查询三元组,缺失的信息所对应的元素采用通配符表示,以用于进行模糊匹配。
在次子操作S221b,在上述属性查询信息包括查询对象的ID、属性ID和属性值的情况下,生成精确查询三元组,上述精确查询三元组中的三个元素均为确定值。
图4示意性示出了根据本公开实施例的子操作S221的实施过程。
以查询目标商品的属性信息的场景作为示例,参照图4中(a)示例的属性查询信息存在缺失的情况,针对查询对象的属性查询信息为:目标商品A的ID和目标商品A的属性ID,目标商品A的属性值的信息是缺失的,这种情况下,实施次子操作S221a,基于上述目标商品A的ID和目标商品A的属性ID生成模糊查询三元组{目标商品A的ID,目标商品A的属性ID,通配符}。上述通配符用于在后续实施操作S22时进行模糊匹配,以得到与目标商品A的ID和目标商品A的属性ID均匹配的商品的属性信息,属性值不进行限定。
以查询目标商品的属性信息的场景作为示例,参照图4中(b)示例的属性查询信息包括查询对象的ID、属性ID和属性值的情况,针对查询对象的属性查询信息为:目标商品B的ID、目标商品B的属性ID和目标商品B的属性值,这种情况下,实施次子操作S221b,基于上述目标商品B的ID、目标商品B的属性ID和目标商品B的属性值生成精确查询三元组{目标商品B的ID,目标商品B的属性ID,目标商品B的属性值}。
图5示意性示出了根据本公开实施例的子操作S222的详细实施流程图。
根据本公开的实施例,参照图5所示,上述基于上述针对查询对象的查询三元组,与上述数据库中的AVL树存储的信息进行匹配的子操作S222,包括以下次子操作:S2221、S2222、S2223、S2224和S2225。
在次子操作S2221,基于上述查询对象对应的所属方标识,在上述数据库中确定与上述所属方标识关联的候选AVL树。
在次子操作S2222,确定上述查询三元组中各个元素的匹配优先级顺序。
在次子操作S2223,基于上述匹配优先级顺序,确定与上述匹配优先级顺序对应的目标索引类型。
在次子操作S2224,在上述候选AVL树中确定与上述目标索引类型匹配的目标AVL树。
在次子操作S2225,针对上述查询三元组的各个元素,基于上述匹配优先级顺序与上述目标AVL树中各个节点的信息进行匹配。
上述次子操作S2221中,查询对象对应的所属方标识用于表征查询对象的所属方的差异,在数据库中基于AVL树对存储对象进行存储时,由于属于不同机构的存储对象具有不同的属性描述和属性类型,因此在数据库中按照不同的存储对象所属方,对应关联于不同的AVL树。那么对应在进行查询时,根据查询对象的所属方标识可以识别查询对象所对应的AVL树,即候选AVL树。
例如,在电子商务中各个商户的商品的属性信息查询的场景中,查询对象为目标商品,查询对象对应的所属方标识为目标商品所对应的商户机器人ID,对应在数据库中,同一个商户的所有商品对应于同一个AVL树和商户机器人ID;不同的商户之间,商户机器人ID不同,AVL树也不同,并且AVL树按照与商户机器人ID形成键-值对的形式在高速缓存数据库Redis中存储。
在用户对图书管理平台中书籍的属性信息的查询场景中,查询对象为目标书籍,查询对象对应的所属方标识可以是目标书籍所对应的出版商ID(这里仅作为示例)。对应在数据库中,同一个出版商的所有书籍对应于同一个AVL树和出版商ID;不同的出版商之间,出版商ID不同,AVL树也不同,并且AVL树按照与出版商ID形成键-值对的形式在高速缓存数据库Redis中存储。
根据本公开的实施例,次子操作S2222中,上述匹配优先级顺序为上述查询三元组中各个元素的默认排列顺序、或者为上述查询请求中指定的先后匹配顺序。
例如在一场景中,在查询请求中携带有用户指定的先后匹配顺序,比如针对目标商品的属性查询信息包括查询对象的ID、属性ID和属性值,并且指定了匹配的先后顺序,示例性的,例如指定的先后匹配顺序例如依次为:先进行属性ID的匹配,然后进行属性值的匹配,最后进行查询对象的ID的匹配。
本公开的实施例中,指定的先后匹配顺序的一种特殊情况可以是三者的匹配顺序不做限制。
在包含海量数据的数据库中进行查询的场景下,数据库预先基于不同的索引类型对三元组形式的属性信息进行了存储,那么后续查询时可以根据匹配优先级顺序来确定对应匹配的索引类型(对应于次子操作S2223),进一步在候选AVL树中确定与目标索引类型所对应匹配的AVL树,即目标AVL树(对应于次子操作S2224)。
在确定好目标AVL树的情况下,可以将查询三元组中的各个元素与目标AVL树中各个节点存储的信息进行匹配,匹配时查询三元组中各个元素按照匹配优先级顺序依次与目标AVL树中的各个节点进行匹配(对应于次子操作S2225),在优先级相对较高的元素能够匹配上的情况下,再进行后续优先级较低的元素的匹配,如果优先级相对较高的元素遍历整个AVL树均匹配不上,则不再进行其他优先级相对较低的元素的匹配,如此,能够提升匹配的效率,进而提升查询效率。
图6示意性示出了根据本公开实施例的操作S23的实施过程。
上述根据上述信息匹配的结果来输出信息查询结果的操作S23,包括以下子操作:S23a和S23b。
在子操作S23a,在得到与上述属性查询信息匹配的目标AVL树节点的情况下,将上述目标AVL树节点的信息作为查询结果进行输出,参照图6中(a)对应的过程所示。
在子操作S23b,在遍历上述数据库,确定不存在与上述属性查询信息匹配的目标AVL树节点的情况下,输出信息查询失败的提示,参照图6中(b)、(c)和(d)对应的过程所示。
上述不存在与上述属性查询信息匹配的目标AVL树节点,包括以下情形的一种:不存在候选AVL树,参照图6中(b)对应的过程所示;或者,存在候选AVL树,但是不存在目标AVL树,参照图6中(c)对应的过程所示;或者,存在候选AVL树且存在目标AVL树,但是不存在与上述属性查询信息匹配的目标AVL树节点,参照图6中(d)对应的过程所示。
图7示意性示出了根据本公开另一实施例的信息查询的方法的流程图。
参照图7所示,本公开实施例提供的信息查询的方法除了包括上述操作S21~S23之外,还包括以下操作S71:构建数据库。
图8示意性示出了根据本公开实施例的操作S71的详细实施流程图。
参照图8所示,上述构建数据库的操作S71包括以下子操作:S711、S712、S713和S714。
在子操作S711,获取待存储对象的属性信息及对应的所属方标识,上述待存储对象的属性信息包括:待存储对象的ID、属性ID和属性值。
在子操作S712,将上述待存储对象的属性信息以三元组形式进行存储,得到存储对象的三元组属性信息。
在子操作S713,针对每个所属方标识所对应的目标待存储对象,将上述存储对象的三元组属性信息作为AVL树的各个节点,并基于预设的索引类型来对各个节点进行排列,进而构建得到AVL树。
在子操作S714,将构建得到的AVL树和对应的所属方标识进行关联后并存储,以得到数据库。
上述子操作S711中,要以AVL树的形式存储于数据库中的对象称之为待存储对象,当上述待存储对象以AVL树形式构建完成并和所属方标识关联后存储后,待存储对象就成为了数据库中的存储对象。
与前述查询过程中的子操作S222对应,待存储对象对应的所属方标识用于表征待存储对象的所属方差异。在数据库中基于AVL树对存储对象进行存储时,由于属于不同机构的存储对象具有不同的属性描述和属性类型,因此在数据库中按照不同的存储对象所属方,对应关联于不同的AVL树。那么对应在进行查询时,根据查询对象的所属方标识可以识别查询对象所对应的AVL树,即候选AVL树。
上述子操作S712中,将上述待存储对象的属性信息以三元组形式进行存储,待存储对象的ID、属性ID和属性值分别作为三元组的三个元素。
根据本公开的实施例,上述子操作S713中,上述预设的索引类型包括以下至少一种:第一索引类型:依次按照待存储对象的ID、属性ID和属性值的比较顺序来排列各个节点;第二索引类型:依次按照待存储对象的ID、属性值和属性ID的比较顺序来排列各个节点;第三索引类型:依次按照待存储对象的属性ID、ID和属性值的比较顺序来排列各个节点;第四索引类型:依次按照待存储对象的属性ID、属性值和ID的比较顺序来排列各个节点;第五索引类型:依次按照待存储对象的属性值、ID和属性ID的比较顺序来排列各个节点;第六索引类型:依次按照待存储对象的属性值、属性ID和ID的比较顺序来排列各个节点。
上述子操作S714中,关联了所属方标识的AVL树可以通过键值对的形式存储于数据库中,例如存储于高速缓存数据库Redis中,以在查询时根据查询对象所对应的所属方标识来匹配对应的候选AVL树。
图9示意性示出了根据本公开又一实施例的信息查询的方法的流程图。
参照图9所示,本公开实施例提供的信息查询的方法除了包括上述操作S21~S23和S71之外,还包括以下操作S91:更新数据库。本实施例中,操作S22中的预先构建的数据库包括实施操作S91之后得到的更新后的数据库。
图10示意性示出了根据本公开实施例的操作S91的详细实施流程图。
参照图10所示,本公开实施例提供的操作S91包括以下子操作:S911和S912。
在子操作S911,上述更新数据库包括:获取上述数据库的更新信息,上述更新信息包括:新增待存储对象、或者更改原有待存储对象的属性信息。
在子操作S912,根据上述更新信息来增加关于新增待存储对象的AVL树或者更新原有AVL树的结构,以得到更新后的数据库。
具体而言,上述子操作S911中,更改原有待存储对象的属性信息包括:增加、删除、或修改已有待存储对象的属性信息。
上述子操作S912中,更新原有AVL树的结构包括:根据原有待存储对象的属性信息的更改操作为增加、删除、或修改来对原有AVL树进行节点的增加、删除或修改,其中增加或删除AVL树的节点时,通过左旋或右旋的方式来进行AVL树的结构更新。
基于AVL树构建的数据库能够降低数据查找、更新(AVL树的增加、原有AVL树的节点的增加、删除或修改)的时间复杂度,提升属性信息的查询、更新效率。
本公开的第二个示例性实施例提供了一种用于信息查询的装置。
图11示意性示出了根据本公开实施例的用于信息查询的装置的结构框图。
参照图11所示,本公开实施例提供的用于信息查询的装置1100包括:查询请求接收模块1101、信息匹配模块1102以及查询结果输出模块1103。
上述查询请求接收模块1101用于接收用户的查询请求,上述查询请求携带有针对查询对象的属性查询信息。
上述信息匹配模块1102用于基于上述属性查询信息,在预先构建的数据库中进行信息匹配,上述数据库基于AVL树来存储对象的属性信息。上述信息匹配模块1102可以包括用于实现子操作S221和S222的功能模块或子模块。
上述查询结果输出模块1103用于根据上述信息匹配的结果来输出信息查询结果。在得到与上述属性查询信息匹配的目标AVL树节点的情况下,将上述目标AVL树节点的信息作为查询结果进行输出。在遍历上述数据库,确定不存在与上述属性查询信息匹配的目标AVL树节点的情况下,输出信息查询失败的提示。
根据本公开的实施例,上述用于信息查询的装置1100除了包括查询请求接收模块1101、信息匹配模块1102以及查询结果输出模块1103之外,还可以进一步包括:数据库构建模块。
上述数据库构建模块用于构建数据库,上述数据库构建模块包括用于实现子操作S711~S714的各个功能模块或子模块。
上述用于信息查询的装置1100除了包括查询请求接收模块1101、信息匹配模块1102、查询结果输出模块1103以及数据库构建模块之外,还可以进一步包括:数据库更新模块。
上述数据库更新模块用于更新数据库。上述数据库更新模块包括用于实现子操作S911和S912的功能模块或子模块。
上述查询请求接收模块1101、信息匹配模块1102、查询结果输出模块1103、数据库构建模块以及数据库更新模块中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。查询请求接收模块1101、信息匹配模块1102、查询结果输出模块1103、数据库构建模块以及数据库更新模块中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,查询请求接收模块1101、信息匹配模块1102、查询结果输出模块1103、数据库构建模块以及数据库更新模块中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
本公开的第三个示例性实施例提供了一种电子设备。
图12示意性示出了本公开实施例提供的电子设备的结构框图。
参照图12所示,本公开实施例提供的电子设备1200包括处理器1201、通信接口1202、存储器1203和通信总线1204,其中,处理器1201、通信接口1202和存储器1203通过通信总线1204完成相互间的通信;存储器1203,用于存放计算机程序;处理器1201,用于执行存储器上所存放的程序时,实现如上所述的信息查询的方法。
本公开的第四个示例性实施例还提供了一种计算机可读存储介质。上述计算机可读存储介质上存储有计算机程序,上述计算机程序被处理器执行时实现如上所述的信息查询的方法。
该计算机可读存储介质可以是上述实施例中描述的设备/装置中所包含的;也可以是单独存在,而未装配入该设备/装置中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种信息查询的方法,其特征在于,包括:
接收用户的查询请求,所述查询请求携带有针对查询对象的属性查询信息;
基于所述属性查询信息,在预先构建的数据库中进行信息匹配,所述数据库基于AVL树来进行存储对象的属性信息的存储;以及
根据所述信息匹配的结果来输出信息查询结果;
其中,所述基于所述属性查询信息,在预先构建的数据库中进行信息匹配,包括:
基于所述属性查询信息,生成针对查询对象的查询三元组;
基于所述针对查询对象的查询三元组,与所述数据库中的AVL树存储的信息进行匹配,包括:基于所述查询对象所属的所属方标识,在所述数据库中确定与所述所属方标识关联的候选AVL树;
确定所述查询三元组中各个元素的匹配优先级顺序;
基于所述匹配优先级顺序,确定与所述匹配优先级顺序对应的目标索引类型;
在所述候选AVL树中确定与所述目标索引类型匹配的目标AVL树;以及
针对所述查询三元组的各个元素,基于所述匹配优先级顺序与所述目标AVL树中各个节点的信息进行匹配。
2.根据权利要求1所述的方法,其特征在于,所述针对查询对象的属性查询信息包括查询对象的ID、属性ID和属性值至少一种;所述查询对象的ID、属性ID和属性值作为所述查询三元组的三个元素;
其中,所述基于所述属性查询信息,生成针对查询对象的查询三元组,包括:
在所述属性查询信息只包括查询对象的ID、属性ID和属性值中的部分信息的情况下,生成模糊查询三元组,缺失的信息所对应的元素采用通配符表示,以用于进行模糊匹配;
在所述属性查询信息包括查询对象的ID、属性ID和属性值的情况下,生成精确查询三元组,所述精确查询三元组中的三个元素均为确定值。
3.根据权利要求1所述的方法,其特征在于,所述匹配优先级顺序为所述查询三元组中各个元素的默认排列顺序、或者为所述查询请求中指定的先后匹配顺序。
4.根据权利要求3所述的方法,其特征在于,所述根据所述信息匹配的结果来输出信息查询结果,包括:
在得到与所述属性查询信息匹配的目标AVL树节点的情况下,将所述目标AVL树节点的信息作为查询结果进行输出;
在遍历所述数据库,确定不存在与所述属性查询信息匹配的目标AVL树节点的情况下,输出信息查询失败的提示;
其中,所述不存在与所述属性查询信息匹配的目标AVL树节点,包括以下情形的一种:
不存在候选AVL树;或者,
存在候选AVL树,但是不存在目标AVL树;或者,
存在候选AVL树且存在目标AVL树,但是不存在与所述属性查询信息匹配的目标AVL树节点。
5.根据权利要求1-4中任一项所述的方法,其特征在于,还包括:构建数据库;
其中,所述构建数据库包括:
获取待存储对象的属性信息及对应的所属方标识,所述待存储对象的属性信息包括:待存储对象的ID、属性ID和属性值;
将所述待存储对象的属性信息以三元组形式进行存储,得到存储对象的三元组属性信息;
针对每个所属方标识所对应的目标待存储对象,将所述存储对象的三元组属性信息作为AVL树的各个节点,并基于预设的索引类型来对各个节点进行排列,进而构建得到AVL树;以及
将构建得到的AVL树和对应的所属方标识进行关联后并存储,以得到数据库。
6.根据权利要求5所述的方法,其特征在于,所述预设的索引类型包括以下至少一种:
第一索引类型:依次按照待存储对象的ID、属性ID和属性值的比较顺序来排列各个节点;
第二索引类型:依次按照待存储对象的ID、属性值和属性ID的比较顺序来排列各个节点;
第三索引类型:依次按照待存储对象的属性ID、ID和属性值的比较顺序来排列各个节点;
第四索引类型:依次按照待存储对象的属性ID、属性值和ID的比较顺序来排列各个节点;
第五索引类型:依次按照待存储对象的属性值、ID和属性ID的比较顺序来排列各个节点;
第六索引类型:依次按照待存储对象的属性值、属性ID和ID的比较顺序来排列各个节点。
7.根据权利要求5所述的方法,其特征在于,还包括:更新数据库,所述更新数据库包括:
获取所述数据库的更新信息,所述更新信息包括:新增待存储对象、或者更改原有待存储对象的属性信息;
根据所述更新信息来增加关于新增待存储对象的AVL树或者更新原有AVL树的结构,以得到更新后的数据库。
8.一种用于信息查询的装置,其特征在于,包括:
查询请求接收模块,用于接收用户的查询请求,所述查询请求携带有针对查询对象的属性查询信息;
信息匹配模块,用于基于所述属性查询信息,在预先构建的数据库中进行信息匹配,所述数据库基于AVL树来进行存储对象的属性信息的存储;以及
查询结果输出模块,用于根据所述信息匹配的结果来输出信息查询结果;
其中,所述基于所述属性查询信息,在预先构建的数据库中进行信息匹配,包括:
基于所述属性查询信息,生成针对查询对象的查询三元组;以及
基于所述针对查询对象的查询三元组,与所述数据库中的AVL树存储的信息进行匹配,包括:基于所述查询对象所属的所属方标识,在所述数据库中确定与所述所属方标识关联的候选AVL树;
确定所述查询三元组中各个元素的匹配优先级顺序;
基于所述匹配优先级顺序,确定与所述匹配优先级顺序对应的目标索引类型;
在所述候选AVL树中确定与所述目标索引类型匹配的目标AVL树;以及
针对所述查询三元组的各个元素,基于所述匹配优先级顺序与所述目标AVL树中各个节点的信息进行匹配。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110767672.5A CN113449003B (zh) | 2021-07-07 | 2021-07-07 | 信息查询的方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110767672.5A CN113449003B (zh) | 2021-07-07 | 2021-07-07 | 信息查询的方法、装置、电子设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113449003A CN113449003A (zh) | 2021-09-28 |
CN113449003B true CN113449003B (zh) | 2024-04-16 |
Family
ID=77815435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110767672.5A Active CN113449003B (zh) | 2021-07-07 | 2021-07-07 | 信息查询的方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113449003B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109815232A (zh) * | 2018-12-27 | 2019-05-28 | 厦门市美亚柏科信息股份有限公司 | 一种利用二叉查找树的数据排名的检索、数据处理的方法和系统 |
CN112905600A (zh) * | 2021-03-19 | 2021-06-04 | 腾讯科技(深圳)有限公司 | 数据查询方法、装置和存储介质及电子设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4004619B2 (ja) * | 1998-01-08 | 2007-11-07 | 富士通株式会社 | 自動在庫引当が可能な在庫管理装置 |
US20140095508A1 (en) * | 2012-10-01 | 2014-04-03 | International Business Machines | Efficient selection of queries matching a record using a cache |
JP7449919B2 (ja) * | 2018-07-25 | 2024-03-14 | オラクル・インターナショナル・コーポレイション | 自律型エージェントおよびシソーラスを用いるデータベースのための自然言語インターフェイス |
-
2021
- 2021-07-07 CN CN202110767672.5A patent/CN113449003B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109815232A (zh) * | 2018-12-27 | 2019-05-28 | 厦门市美亚柏科信息股份有限公司 | 一种利用二叉查找树的数据排名的检索、数据处理的方法和系统 |
CN112905600A (zh) * | 2021-03-19 | 2021-06-04 | 腾讯科技(深圳)有限公司 | 数据查询方法、装置和存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113449003A (zh) | 2021-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9881052B2 (en) | Limiting scans of loosely ordered and/or grouped relations in a database | |
CN105488050B (zh) | 一种数据库多索引方法、装置及系统 | |
CN110019080B (zh) | 数据访问方法和装置 | |
CN111247550B (zh) | 用于区块链网络的计算机化交易管理模块 | |
JP6928677B2 (ja) | オンライン分析処理を行うためのデータ処理方法及び装置 | |
CN111046237B (zh) | 用户行为数据处理方法、装置、电子设备及可读介质 | |
CN105144159A (zh) | Hive表链接 | |
US11238402B2 (en) | Information operation | |
US8015195B2 (en) | Modifying entry names in directory server | |
CN110019258A (zh) | 处理订单数据的方法和装置 | |
US20210149869A1 (en) | Correlating multiple tables in a non-relational database environment | |
US20140019454A1 (en) | Systems and Methods for Caching Data Object Identifiers | |
US20190362016A1 (en) | Frequent pattern analysis for distributed systems | |
JP2019520627A (ja) | データベース中にグラフ情報を記憶するためのb木使用 | |
CN112528067A (zh) | 图数据库的存储方法、读取方法、装置及设备 | |
CN111753019B (zh) | 一种应用于数据仓库的数据分区方法和装置 | |
US11562319B1 (en) | Machine learned item destination prediction system and associated machine learning techniques | |
CN107357557B (zh) | 一种信息更新方法及装置 | |
CN113449003B (zh) | 信息查询的方法、装置、电子设备及介质 | |
CN108733668B (zh) | 用于查询数据的方法和装置 | |
CN114048219A (zh) | 图数据库更新方法及装置 | |
US9607029B1 (en) | Optimized mapping of documents to candidate duplicate documents in a document corpus | |
WO2021207831A1 (en) | Method and systems for indexing databases on a contextual basis | |
CN113992664A (zh) | 一种集群通信的方法、相关装置及存储介质 | |
CN111309932A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |