CN107451208B - 一种数据搜索方法与装置 - Google Patents
一种数据搜索方法与装置 Download PDFInfo
- Publication number
- CN107451208B CN107451208B CN201710566531.0A CN201710566531A CN107451208B CN 107451208 B CN107451208 B CN 107451208B CN 201710566531 A CN201710566531 A CN 201710566531A CN 107451208 B CN107451208 B CN 107451208B
- Authority
- CN
- China
- Prior art keywords
- sub
- database
- information
- bullet screen
- query
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000013500 data storage Methods 0.000 abstract description 7
- 238000012544 monitoring process Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 239000002253 acid Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- 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/2264—Multidimensional index structures
-
- 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/2453—Query optimisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4788—Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种数据搜索方法与装置,涉及互联网技术领域。其中,所述方法包括:获取查询关键词;根据Newsql数据库的各个子数据库存储的与弹幕内容有关的属性信息,将查询关键词拆分成多个查询词;分别根据所述多个查询词中的一个查询词在所述查询词对应的子数据库存储的查询索引中查询对应的子结果集;将从各个子数据库中查询得到的子结果集进行合并得到目标搜索结果集。本发明实施例能够在解决数据量存储量大的问题的同时,提高数据搜索效率,降低搜索时间。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种数据搜索方法与装置。
背景技术
随着弹幕技术的不断发展,越来越多的用户在视频直播或是观看点播视频时,通过发送弹幕信息与主播或是其他用户进行沟通交流。
那些用户量大或是运营时间长的直播视频网站或是点播视频网站需存储的弹幕的数据量十分庞大,并且在现有技术中,要想从数据量巨大的弹幕数据库中查找需要的数据需要遍历整个数据库,才能找到需要的数据,数据搜索时间长,效率低。
发明内容
本发明提供一种数据搜索方法与装置,目的在于在解决数据量存储量大的问题的同时,提高数据搜索效率,降低搜索时间。
为了解决上述技术问题,本发明提供一种数据搜索方法,包括:
获取查询关键词;
根据Newsql数据库的各个子数据库存储的与弹幕内容有关的属性信息,将查询关键词拆分成多个查询词;
分别根据所述多个查询词中的一个查询词在所述查询词对应的子数据库存储的查询索引中查询对应的子结果集;
将从各个子数据库中查询得到的子结果集进行合并得到目标搜索结果集。
可选地,所述方法,还包括:
接收代理服务器发送的弹幕信息,所述弹幕信息包含弹幕内容及属性信息;
根据所述属性信息,从所述Newsql数据库的多个子数据库中查找对应的子数据库作为目标存储数据库;
将所述属性信息存储至所述目标存储数据库;
基于所述属性信息为所述弹幕信息建立其在所述目标存储数据库中的查询索引。
可选地,所述根据所述属性信息,从所述Newsql数据库的多个子数据库中查找对应的子数据库作为目标存储数据库,包括:
根据所述属性信息包含的属性项,从所述Newsql数据库的多个子数据库中查找存储所述属性项的子数据库作为目标存储数据库。
可选地,所述属性信息包括:所述弹幕内容发表时间信息、发出所述弹幕内容的发出方信息以及接收所述弹幕信息的接收方信息;以及
基于所述属性信息为所述弹幕信息建立其在所述目标存储数据库中的查询索引,包括:
根据所述弹幕内容发表时间信息、发出所述弹幕内容的发出方信息以及接收所述弹幕信息的接收方信息中的任一项,为所述弹幕信息建立其在所述目标存储数据库中的一维查询索引;和/或
根据所述弹幕内容发表时间信息、发出所述弹幕内容的发出方信息以及接收所述弹幕信息的接收方信息中的任意两项或三项,为所述弹幕信息建立其在所述目标存储数据库中的多维查询索引。
可选地,所述方法,还包括:
接收代理服务器发送的多个拆分信息,所述多个拆分信息为所述代理服务器按照拆分规则对所述弹幕信息进行拆分后得到的;
根据所述多个拆分信息包含的属性项,从所述Newsql数据库的多个子数据库中查找对应的子数据库集作为目标存储数据库集,其中,所述子数据库集中的任一子数据库存储的属性项与所述多个拆分信息中的一个拆分信息包含的属性项相同;
分别根据所述多个拆分信息中的一个拆分信息包括的属性项,从所述目标存储数据库集中查找仅存储所述属性项的子数据库作为目标存储数据库;
将所述多个拆分信息分别存储至对应的目标存储数据库中;
根据所述多个拆分信息中的一个拆分信息包括的属性项中的任一项或多项,为所述弹幕信息建立其在对应的目标存储数据库中的一维或多维查询索引。
为了解决上述技术问题,本发明还提供了一种数据搜索装置,包括:
获取模块,用于获取查询关键词;
拆分模块,用于根据Newsql数据库的各个子数据库存储的与弹幕内容有关的属性信息,将查询关键词拆分成多个查询词;
查询模块,用于分别根据所述多个查询词中的一个查询词在所述查询词对应的子数据库存储的查询索引中查询对应的子结果集;
合并模块,用于将从各个子数据库中查询得到的子结果集进行合并得到目标搜索结果集。
本发明实施例提供的技术方案中,采用Newsql分布式数据库解决了弹幕数据存储量大的问题。同时,在Newsql分布式数据库的各个子数据库中分别建立查询索引,也即是在各个子数据库中存储弹幕信息时,对弹幕信息进行了有序存储。这样,后续进行数据搜索时,根据各个子数据库中存储情况对查询任务进行任务拆分,然后分别到各个子数据库中执行对应的子查询任务时,就无需遍历查询,只需进行二分查询,有效缩短了数据搜索时间,提高了数据搜索效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的数据搜索方法的流程示意图;
图2为本发明又一实施例提供的各子数据库中查询索引建立方法的流程示意图;
图3为本发明一实施例提供的数据搜索装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应当理解,尽管在本发明实施例中可能采用术语第一、第二、第三等来描述XXX,但这些XXX不应限于这些术语。这些术语仅用来将XXX彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一XXX也可以被称为第二XXX,类似地,第二XXX也可以被称为第一XXX。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于监测”。类似地,取决于语境,短语“如果确定”或“如果监测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当监测(陈述的条件或事件)时”或“响应于监测(陈述的条件或事件)”。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
图1为本发明一实施例提供的数据搜索方法的流程示意图。如图1所示,该方法包括:
101、获取查询关键词。
102、根据Newsql数据库的各个子数据库存储的与弹幕内容有关的属性信息,将查询关键词拆分成多个查询词。
103、分别根据所述多个查询词中的一个查询词在所述查询词对应的子数据库存储的查询索引中查询对应的子结果集。
104、将从各个子数据库中查询得到的子结果集进行合并得到目标搜索结果集。
在步骤101中,可为查询用户提供一搜索输入界面,查询用户将需要进行查询的关键词输入所述搜索界面,点击搜索,搜索引擎即可获取到所述搜索界面输入的查询关键词。例如,输入的查询关键词为“用户1主播01”,也即是要查询用户1向主播01对应的直播间所发送的所有弹幕信息,其中1代表用户标识或用户ID,01代表主播标识或主播ID;输入的查询关键词为“201705015用户1主播01”,也即是要查询用户1在2017年05月15日这天向主播01对应的直播间所发送的弹幕信息。
在步骤102中,NewSQL数据库是一类能够具有类似NOSQL数据库的良好可扩展性,同时又支持传统数据库例如ACID事务以及SQL语言特性的新型数据库系统。Newsql分布式数据库工作在分布式集群的各个节点上,可通过添加额外的节点来线性扩展,以满足海量数据的存储。
一条完整的弹幕信息不仅包括弹幕内容,还会包括属性信息,所述属性信息包括:所述弹幕内容发表时间信息、发出所述弹幕内容的发出方信息以及接收所述弹幕内容的接收方信息。通常,是会将一条完整的弹幕信息保存至一个子数据库中。但是,在实际应用中,随着NewSQL数据库的运行,难以避免NewSQL数据库中的某一子数据库因机器故障或负荷过重等问题导致无法工作,这时就需要对该子数据库进行替换更新,即将出问题的子数据库中的存储的弹幕信息存储至新增的一个子数据库或多个子数据库中。若将一个数据库中存储的弹幕数据拆分至多个子数据库中时,就可能会出现将该子数据库中存储的任一条完整的弹幕信息拆分成了多份,分别存储至多个子数据库中。可选地,可将存储任一弹幕信息的不同部分的多个子数据库之间建立关联关系,例如:将任一条完整的弹幕信息拆分成两份,其中一份仅包含弹幕内容发表时间信息、发出弹幕内容的发出方信息,另一份仅包含接收弹幕内容的接收方信息和弹幕内容,在分别存储这两份中的任一份的两个子数据库之间建立关联关系。
综上,NewSQL数据库中的各个数据库中存储的弹幕信息的属性项很可能存在差异,其中一些子数据库存储的任一条弹幕信息都是完整的,也即是存储了弹幕信息的全部属性项,而有些子数据库中存储的任一条弹幕信息仅包含所述任一条弹幕信息中的部分属性项。
因此,在执行查询时,对于那些存储了完整弹幕信息的子数据库而言,就无需对查询关键词进行拆分,直接根据所述查询关键词在所述子数据库中进行查询得到一相应的子结果集。
而对于那些仅存储了弹幕信息的部分属性信息的子数据库,就需要根据所述各个子数据库存储的与弹幕内容有关的部分属性信息包含的属性项,将查询关键词拆分成多个查询词。例如,子数据库1中存储的任一条弹幕信息仅包含弹幕内容发表时间信息、发出弹幕内容的发出方信息,子数据库2中存储的任一条弹幕信息仅包含接收弹幕内容的接收方信息和弹幕内容,查询关键词为“201705015用户1主播01”,则将所述查询关键词拆分为“201705015用户1”和“主播01”,在子数据库1中执行查询词“201705015用户1”的查询,在子数据库2中执行查询词“主播01”的查询。又例如,子数据库1中存储的任一条弹幕信息仅包含弹幕内容发表时间信息,子数据库2中存储的任一条弹幕信息仅包含发出弹幕内容的发出方信息、接收弹幕内容的接收方信息和弹幕内容,查询关键词为“201705015用户1”,则将所述查询关键词拆分为“201705015”和“用户1”,在子数据库1中执行查询词“201705015”的查询,在子数据库2中执行查询词“用户1”的查询。
上述步骤103中,事先在各个子数据库中,针对各个子数据存储的弹幕信息的属性项建立并存储查询索引。这样,在各个子数据库中执行查询时,基于各个子数据库中存储的查询索引,查询得到各个子数据库对应的子结果集。
例如,子数据库1中存储的任一条弹幕信息仅包含弹幕内容发表时间信息、发出弹幕内容的发出方信息,子数据库2中存储的任一条弹幕信息仅包含接收弹幕内容的接收方信息和弹幕内容,查询关键词为“201705015用户1主播01”,则将所述查询关键词拆分为“201705015用户1”和“主播01”,在子数据库1存储的查询索引中查询“201705015用户1”对应的子结果集,在子数据库2存储的查询索引中查询“主播01”对应的子结果集。
在上述步骤104中,合并各个子数据库对应的子结果集,以得到目标搜索结果集。
为了描述方便,将NewSQL数据库中建立了关联关系的多个子数据库称为子数据库集。
若NewSQL数据库仅包括多个子数据库集,则分别获取所述多个子数据库集中的一个子数据库集对应的多个子结果集;通过哈希连接Hash join得到所述子数据库集对应的多个子结果集的交集;将所述交集作为所述子数据库集的子目标搜索结果集;将所述多个子数据库集对应的多个子目标搜索结果集的并集作为目标搜索结果集。
若NewSQL数据库除了包括多个子数据库集,还包括存储完整弹幕信息的多个子数据库,则分别获取所述多个子数据库中的一个子数据库对应的子结果集以及所述多个子数据库集中的一个子数据库集对应的多个子结果集;通过哈希连接hash join得到所述子数据库集对应的多个子结果集的交集;将所述交集作为所述子数据库集的子目标搜索结果集;将所述多个子数据库对应的多个子结果集以及所述多个子数据库集对应的多个子目标搜索结果集的并集作为目标搜索结果集。
本发明实施例提供的技术方案中,采用Newsql分布式数据库解决了弹幕数据存储量大的问题。同时,在Newsql分布式数据库的各个子数据库中分别建立查询索引,也即是在各个子数据库中存储弹幕信息时,对弹幕信息进行了有序存储。这样,后续进行数据搜索时,根据各个子数据库中存储情况对查询任务进行任务拆分,然后分别到各个子数据库中执行对应的子查询任务时,就无需遍历查询,只需进行二分查询,有效缩短了数据搜索时间,
提高了数据搜索效率。
下面将以一具体实施例进行详细介绍:
NewSQL数据库中包括子数据库集H和子数据库集J以及存储完整弹幕信息的子数据库K,子数据库集H包括子数据库1和子数据库2,子数据库集J包括子数据库3和子数据库4。各个子数据库中存储的属性项如下表所示:
表1 NewSQL数据库中各子数据库的存储情况
输入的查询关键词为“201705015用户1主播01”,根据Newsql数据库中子数据库1和2存储的与弹幕内容有关的部分属性信息包含的属性项,将查询关键词拆分成“201705015用户1”和“主播01”;根据Newsql数据库中子数据库3和4存储的与弹幕内容有关的部分属性信息包含的属性项,将查询关键词拆分成“201705015”和“用户1主播01”。
从上述子数据库1中获取到“201705015用户1”的子结果集为A,从上述子数据库2中获取到“主播01”的子结果集为B,从上述子数据库3中获取到“201705015”的子结果集为C,从上述子数据库4中获取到“用户1主播01”的子结果集为D,从上述子数据库K中获取到“201705015用户1主播01”的子结果集E。
通过哈希连接将子结果集A和子结果集B的交集作为子数据库集H的子目标搜索结果集Q;通过哈希连接将子结果集C和子结果集D的交集作为子数据库集J的子目标搜索结果集P;将子目标搜索结果集Q、子目标搜索结果集P以及子结果集E的并集U作为目标搜索结果集。
图2为本发明又一实施例提供的各子数据库中查询索引建立方法的流程示意图。如图2所示,该方法包括:
201、接收代理服务器发送的弹幕信息,所述弹幕信息包含弹幕内容及属性信息。
202、根据所述属性信息,从所述Newsql数据库的多个子数据库中查找对应的子数据库作为目标存储数据库。
203、将所述属性信息存储至所述目标存储数据库。
204、基于所述属性信息为所述弹幕信息建立其在所述目标存储数据库中的查询索引。
由于在直播高峰期或是视频播放高峰期,网站的弹幕并发量十分庞大,若等弹幕信息写入Newsql数据库后,再发送出去,会严重影响到用户的使用,增加了弹幕发送的延迟时间。因此,可为网站设置一消息队列,由于弹幕信息可快速存入消息队列中,存入消息队列后,即可将弹幕信息发送出去,大幅度降低弹幕发送的延迟时间。存储在消息队列中的弹幕信息按照先进先出的顺序由消息队列推送给代理服务器。
代理服务器接收到弹幕信息之后,可将弹幕信息完整推送给Newsql数据库。
接收到代理服务器发送的弹幕信息后,根据所述弹幕信息的属性信息包含的属性项,从所述Newsql数据库的多个子数据库中查找存储所述属性项的子数据库作为目标存储数据库,由于完整的弹幕信息的属性信息包含了所有属性项:弹幕内容发表时间信息、发出弹幕内容的发出方信息以及接收弹幕信息的接收方信息,因此,可从所述Newsql数据库的多个子数据库中查找存储了完整弹幕信息的子数据库作为目标存储数据库。
其中,所述弹幕信息的属性信息包括:所述弹幕内容发表时间信息、发出所述弹幕内容的发出方信息以及接收所述弹幕信息的接收方信息。在一种可实现的方案中,所述基于所述属性信息为所述弹幕信息建立其在所述目标存储数据库中的查询索引的步骤,具体可采用如下方法实现:根据所述弹幕内容发表时间信息、发出所述弹幕内容的发出方信息以及接收所述弹幕信息的接收方信息中的任一项,为所述弹幕信息建立其在所述目标存储数据库中的一维查询索引;和/或根据所述弹幕内容发表时间信息、发出所述弹幕内容的发出方信息以及接收所述弹幕信息的接收方信息中的任意两项或三项,为所述弹幕信息建立其在所述目标存储数据库中的多维查询索引。
作为可选地,代理服务器接收到弹幕信息之后也可按照拆分规则将弹幕信息拆分成多个拆分信息推送给Newsql数据库。其中,所述拆分规则可根据Newsql数据库中的子数据库存储的部分属性项生成。
这样,在接收到代理服务器发送的多个拆分信息后,根据所述多个拆分信息包含的属性项,从所述Newsql数据库的多个子数据库中查找对应的子数据库集作为目标存储数据库集,其中,所述子数据库集中的任一子数据库存储的属性项与所述多个拆分信息中的一个拆分信息包含的属性项相同;分别根据所述多个拆分信息中的一个拆分信息包括的属性项,从所述目标存储数据库集中查找仅存储所述属性项的子数据库作为目标存储数据库;将所述多个拆分信息分别存储至对应的目标存储数据库中;根据所述多个拆分信息中的一个拆分信息包括的属性项中的任一项或多项,为所述弹幕信息建立其在对应的目标存储数据库中的一维或多维查询索引。需要说明的是,任一子数据库集中的多个子数据库之间存在关联关系。
在一种可实现的方案中,在目标存储数据库中,可仅根据弹幕信息或拆分信息包含的属性项中的任一项建立一维查询索引即可,这样,上述实施例步骤103中,根据所述多个查询词中的一个查询词在所述查询词对应的子数据库存储的查询索引中查询对应的子结果集的步骤,具体实现方式为:将所述查询词拆分成多个单维查询词;根据多个单维查询词中的一个单维查询词对应的属性项,在所述子数据库存储的与所述属性项对应的一维查询索引中查找所述单维查询词对应的结果集;通过哈希连接将所述多个单维查询词对应的结果集进行合并得到所述查询词的子结果集。
在另一种可实现的方案中,在目标存储数据库中,除了根据弹幕信息或拆分信息包含的属性项中的任一项建立一维查询索引,还可以根据弹幕信息或拆分信息包含的属性项中的任两项或三项建立多维索引,以加快数据搜索效率,缩短数据搜索时间。这样,上述实施例步骤103中,根据所述多个查询词中的一个查询词在所述查询词对应的子数据库存储的查询索引中查询对应的子结果集的步骤,具体实现方式为:根据所述查询词包含的多个属性项,在所述子数据库中存储的与所述多个属性项对应的多维查询索引中查找所述查询词的子结果集。
为了描述方便,将属性项:弹幕内容发表时间信息、发出所述弹幕内容的发出方信息、接收所述弹幕内容的接收方信息分别称为a、b、c。
子数据库1中存储了属性项a和b,针对a建立一维查询索引A,针对b建立一维查询索引B,针对a和b建立二维查询索引C。若要在子数据库1中执行查询词“201705015用户1”的搜索,则可直接通过二维查询索引C直接找到对应的子结果集。
本发明实施例提供的技术方案中,采用Newsql分布式数据库解决了弹幕数据存储量大的问题。同时,在Newsql分布式数据库的各个子数据库中分别建立查询索引,也即是在各个子数据库中存储弹幕信息时,对弹幕信息进行了有序存储。这样,后续进行数据搜索时,根据各个子数据库中存储情况对查询任务进行任务拆分,然后分别到各个子数据库中执行对应的子查询任务时,就无需遍历查询,只需进行二分查询,有效缩短了数据搜索时间,提高了数据搜索效率。
图3为本发明一实施例提供的数据搜索装置的结构示意图。如图3所示,该装置包括:获取模块301、拆分模块302、查询模块303以及合并模块304。
获取模块301,用于获取查询关键词。
拆分模块302,用于根据Newsql数据库的各个子数据库存储的与弹幕内容有关的属性信息,将查询关键词拆分成多个查询词。
查询模块303,用于分别根据所述多个查询词中的一个查询词在所述查询词对应的子数据库存储的查询索引中查询对应的子结果集。
合并模块304,用于将从各个子数据库中查询得到的子结果集进行合并得到目标搜索结果集。
可选地,所述装置,还包括:
接收模块,用于接收代理服务器发送的弹幕信息,所述弹幕信息包含弹幕内容及属性信息。
查找模块,用于根据所述属性信息,从所述Newsql数据库的多个子数据库中查找对应的子数据库作为目标存储数据库。
存储模块,用于将所述属性信息存储至所述目标存储数据库。
建立模块,用于基于所述属性信息为所述弹幕信息建立其在所述目标存储数据库中的查询索引。
可选地,所述查找模块具体用于:
根据所述属性信息包含的属性项,从所述Newsql数据库的多个子数据库中查找存储所述属性项的子数据库作为目标存储数据库。
可选地,所述属性信息包括:所述弹幕内容发表时间信息、发出所述弹幕内容的发出方信息以及接收所述弹幕信息的接收方信息;以及
所述建立模块具体用于:
根据所述弹幕内容发表时间信息、发出所述弹幕内容的发出方信息以及接收所述弹幕信息的接收方信息中的任一项,为所述弹幕信息建立其在所述目标存储数据库中的一维查询索引;和/或
根据所述弹幕内容发表时间信息、发出所述弹幕内容的发出方信息以及接收所述弹幕信息的接收方信息中的任意两项或三项,为所述弹幕信息建立其在所述目标存储数据库中的多维查询索引。
可选地,所述装置,还包括:
所述接收模块,还用于接收代理服务器发送的多个拆分信息,所述多个拆分信息为所述代理服务器按照拆分规则对所述弹幕信息进行拆分后得到的。
所述查找模块,还用于根据所述多个拆分信息包含的属性项,从所述Newsql数据库的多个子数据库中查找对应的子数据库集作为目标存储数据库集,其中,所述子数据库集中的任一子数据库存储的属性项与所述多个拆分信息中的一个拆分信息包含的属性项相同;还用于分别根据所述多个拆分信息中的一个拆分信息包括的属性项,从所述目标存储数据库集中查找仅存储所述属性项的子数据库作为目标存储数据库。
所述存储模块,还用于将所述多个拆分信息分别存储至对应的目标存储数据库中。
所述建立模块,还用于根据所述多个拆分信息中的一个拆分信息包括的属性项中的任一项或多项,为所述弹幕信息建立其在对应的目标存储数据库中的一维或多维查询索引。
这里需要说明的是:本实施例提供的所述数据搜索装置可实现上述各数据搜索方法实施例提供的技术方案,具体的实现原理可参见上述各实施例中的相应内容,此处不再赘述。
本发明实施例提供的技术方案中,采用Newsql分布式数据库解决了弹幕数据存储量大的问题。同时,在Newsql分布式数据库的各个子数据库中分别建立查询索引,也即是在各个子数据库中存储弹幕信息时,对弹幕信息进行了有序存储。这样,后续进行数据搜索时,根据各个子数据库中存储情况对查询任务进行任务拆分,然后分别到各个子数据库中执行对应的子查询任务时,就无需遍历查询,只需进行二分查询,有效缩短了数据搜索时间,提高了数据搜索效率。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种数据搜索方法,其特征在于,包括:
获取查询关键词;
根据Newsql数据库的各个子数据库存储的与弹幕内容有关的属性信息,将查询关键词拆分成多个查询词;
分别根据所述多个查询词中的一个查询词在所述查询词对应的子数据库存储的查询索引中查询对应的子结果集,其中,对子数据库进行替换更新,将出问题的子数据库中的存储的弹幕信息存储至新增的一个子数据库或多个子数据库中,将任一条完整的弹幕信息拆分成两份,其中一份仅包含弹幕内容发表时间信息、发出弹幕内容的发出方信息,另一份仅包含接收弹幕内容的接收方信息和弹幕内容,在分别存储这两份中的任一份的两个子数据库之间建立关联关系;
将从各个子数据库中查询得到的子结果集进行合并得到目标搜索结果集,其中,执行查询时,对于存储了完整弹幕信息的子数据库,无需对查询关键词进行拆分,直接根据所述查询关键词在所述子数据库中进行查询得到一相应的子结果集,对于仅存储了弹幕信息的部分属性信息的子数据库,根据所述各个子数据库存储的与弹幕内容有关的部分属性信息包含的属性项,将查询关键词拆分成多个查询词;
其中,将Newsql数据库中建立了关联关系的多个子数据库称为子数据库集;所述Newsql数据库包括多个子数据库集;以及
将从各个子数据库中查询得到的子结果集进行合并得到目标搜索结果集,包括:
分别获取所述多个子数据库集中的一个子数据库集对应的多个子结果集;通过哈希连接得到所述子数据库集对应的多个子结果集的交集;将所述交集作为所述子数据库集的子目标搜索结果集;将所述多个子数据库集对应的多个子目标搜索结果集的并集作为所述目标搜索结果集。
2.根据权利要求1所述的方法,其特征在于,还包括:
接收代理服务器发送的弹幕信息,所述弹幕信息包含弹幕内容及属性信息;
根据所述属性信息,从所述Newsql数据库的多个子数据库中查找对应的子数据库作为目标存储数据库;
将所述属性信息存储至所述目标存储数据库;
基于所述属性信息为所述弹幕信息建立其在所述目标存储数据库中的查询索引。
3.根据权利要求2所述的方法,其特征在于,所述根据所述属性信息,从所述Newsql数据库的多个子数据库中查找对应的子数据库作为目标存储数据库,包括:
根据所述属性信息包含的属性项,从所述Newsql数据库的多个子数据库中查找存储所述属性项的子数据库作为目标存储数据库。
4.根据权利要求2、3中任一项所述的方法,其特征在于:所述属性信息包括:所述弹幕内容发表时间信息、发出所述弹幕内容的发出方信息以及接收所述弹幕信息的接收方信息;以及
基于所述属性信息为所述弹幕信息建立其在所述目标存储数据库中的查询索引,包括:
根据所述弹幕内容发表时间信息、发出所述弹幕内容的发出方信息以及接收所述弹幕信息的接收方信息中的任一项,为所述弹幕信息建立其在所述目标存储数据库中的一维查询索引;和/或
根据所述弹幕内容发表时间信息、发出所述弹幕内容的发出方信息以及接收所述弹幕信息的接收方信息中的任意两项或三项,为所述弹幕信息建立其在所述目标存储数据库中的多维查询索引。
5.根据权利要求4所述的方法,其特征在于,还包括:
接收代理服务器发送的多个拆分信息,所述多个拆分信息为所述代理服务器按照拆分规则对所述弹幕信息进行拆分后得到的;
根据所述多个拆分信息包含的属性项,从所述Newsql数据库的多个子数据库中查找对应的子数据库集作为目标存储数据库集,其中,所述子数据库集中的任一子数据库存储的属性项与所述多个拆分信息中的一个拆分信息包含的属性项相同;
分别根据所述多个拆分信息中的一个拆分信息包括的属性项,从所述目标存储数据库集中查找仅存储所述属性项的子数据库作为目标存储数据库;
将所述多个拆分信息分别存储至对应的目标存储数据库中;
根据所述多个拆分信息中的一个拆分信息包括的属性项中的任一项或多项,为所述弹幕信息建立其在对应的目标存储数据库中的一维或多维查询索引。
6.一种数据搜索装置,其特征在于,包括:
获取模块,用于获取查询关键词;
拆分模块,用于根据Newsql数据库的各个子数据库存储的与弹幕内容有关的属性信息,将查询关键词拆分成多个查询词;
查询模块,用于分别根据所述多个查询词中的一个查询词在所述查询词对应的子数据库存储的查询索引中查询对应的子结果集,其中,对子数据库进行替换更新,将出问题的子数据库中的存储的弹幕信息存储至新增的一个子数据库或多个子数据库中,将任一条完整的弹幕信息拆分成两份,其中一份仅包含弹幕内容发表时间信息、发出弹幕内容的发出方信息,另一份仅包含接收弹幕内容的接收方信息和弹幕内容,在分别存储这两份中的任一份的两个子数据库之间建立关联关系;
合并模块,用于将从各个子数据库中查询得到的子结果集进行合并得到目标搜索结果集,其中,执行查询时,对于存储了完整弹幕信息的子数据库,无需对查询关键词进行拆分,直接根据所述查询关键词在所述子数据库中进行查询得到一相应的子结果集,对于仅存储了弹幕信息的部分属性信息的子数据库,根据所述各个子数据库存储的与弹幕内容有关的部分属性信息包含的属性项,将查询关键词拆分成多个查询词;
其中,将Newsql数据库中建立了关联关系的多个子数据库称为子数据库集;所述Newsql数据库包括多个子数据库集;以及
所述合并模块还用于:
分别获取所述多个子数据库集中的一个子数据库集对应的多个子结果集;通过哈希连接得到所述子数据库集对应的多个子结果集的交集;将所述交集作为所述子数据库集的子目标搜索结果集;将所述多个子数据库集对应的多个子目标搜索结果集的并集作为所述目标搜索结果集。
7.根据权利要求6所述的装置,其特征在于,还包括:
接收模块,用于接收代理服务器发送的弹幕信息,所述弹幕信息包含弹幕内容及属性信息;
查找模块,用于根据所述属性信息,从所述Newsql数据库的多个子数据库中查找对应的子数据库作为目标存储数据库;
存储模块,用于将所述属性信息存储至所述目标存储数据库;
建立模块,用于基于所述属性信息为所述弹幕信息建立其在所述目标存储数据库中的查询索引。
8.根据权利要求7所述的装置,其特征在于,所述查找模块具体用于:
根据所述属性信息包含的属性项,从所述Newsql数据库的多个子数据库中查找存储所述属性项的子数据库作为目标存储数据库。
9.根据权利要求7、8中任一项所述的装置,其特征在于:所述属性信息包括:所述弹幕内容发表时间信息、发出所述弹幕内容的发出方信息以及接收所述弹幕信息的接收方信息;以及
所述建立模块具体用于:
根据所述弹幕内容发表时间信息、发出所述弹幕内容的发出方信息以及接收所述弹幕信息的接收方信息中的任一项,为所述弹幕信息建立其在所述目标存储数据库中的一维查询索引;和/或
根据所述弹幕内容发表时间信息、发出所述弹幕内容的发出方信息以及接收所述弹幕信息的接收方信息中的任意两项或三项,为所述弹幕信息建立其在所述目标存储数据库中的多维查询索引。
10.根据权利要求9所述的装置,其特征在于,还包括:
所述接收模块,还用于接收代理服务器发送的多个拆分信息,所述多个拆分信息为所述代理服务器按照拆分规则对所述弹幕信息进行拆分后得到的;
所述查找模块,还用于根据所述多个拆分信息包含的属性项,从所述Newsql数据库的多个子数据库中查找对应的子数据库集作为目标存储数据库集,其中,所述子数据库集中的任一子数据库存储的属性项与所述多个拆分信息中的一个拆分信息包含的属性项相同;还用于分别根据所述多个拆分信息中的一个拆分信息包括的属性项,从所述目标存储数据库集中查找仅存储所述属性项的子数据库作为目标存储数据库;
所述存储模块,还用于将所述多个拆分信息分别存储至对应的目标存储数据库中;
所述建立模块,还用于根据所述多个拆分信息中的一个拆分信息包括的属性项中的任一项或多项,为所述弹幕信息建立其在对应的目标存储数据库中的一维或多维查询索引。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710566531.0A CN107451208B (zh) | 2017-07-12 | 2017-07-12 | 一种数据搜索方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710566531.0A CN107451208B (zh) | 2017-07-12 | 2017-07-12 | 一种数据搜索方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107451208A CN107451208A (zh) | 2017-12-08 |
CN107451208B true CN107451208B (zh) | 2020-08-21 |
Family
ID=60488549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710566531.0A Expired - Fee Related CN107451208B (zh) | 2017-07-12 | 2017-07-12 | 一种数据搜索方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107451208B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108307232A (zh) * | 2018-02-24 | 2018-07-20 | 北京奇艺世纪科技有限公司 | 一种视频评论在线编辑与同步播放方法及装置 |
CN109299219B (zh) * | 2018-08-31 | 2022-08-12 | 北京奥星贝斯科技有限公司 | 数据查询方法、装置、电子设备及计算机可读存储介质 |
CN110968723B (zh) * | 2018-09-29 | 2023-05-12 | 深圳云天励飞技术有限公司 | 一种图像特征值的搜索方法、装置及电子设备 |
CN109710789A (zh) * | 2018-12-28 | 2019-05-03 | 北京旷视科技有限公司 | 图像数据的检索方法、装置、电子设备及计算机存储介质 |
CN109933645B (zh) * | 2019-01-28 | 2024-01-23 | 平安科技(深圳)有限公司 | 信息查询方法、装置、计算机设备及存储介质 |
CN110096553B (zh) * | 2019-03-28 | 2021-05-18 | 北京华成智云软件股份有限公司 | 一种跨数据库的大数据分析系统和分析方法 |
CN112416984B (zh) * | 2019-08-21 | 2024-06-04 | 华为技术有限公司 | 一种数据处理方法及其装置 |
CN110674112A (zh) * | 2019-09-23 | 2020-01-10 | 北京百分点信息科技有限公司 | 一种数据查询的方法、装置及电子设备 |
CN110688516A (zh) * | 2019-10-08 | 2020-01-14 | 北京旷视科技有限公司 | 图像检索方法、装置、计算机设备和存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AUPR796701A0 (en) * | 2001-09-27 | 2001-10-25 | Plugged In Communications Pty Ltd | Database query system and method |
CN102163195B (zh) * | 2010-02-22 | 2013-04-24 | 北京东方通科技股份有限公司 | 一种基于分布式、异构数据库统一视图的查询优化方法 |
CN105868421A (zh) * | 2016-06-12 | 2016-08-17 | 浪潮通用软件有限公司 | 一种数据管理方法及装置 |
CN106303745A (zh) * | 2016-08-16 | 2017-01-04 | 腾讯科技(深圳)有限公司 | 弹幕的处理方法和装置 |
-
2017
- 2017-07-12 CN CN201710566531.0A patent/CN107451208B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN107451208A (zh) | 2017-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107451208B (zh) | 一种数据搜索方法与装置 | |
CN109299102B (zh) | 一种基于Elastcisearch的HBase二级索引系统及方法 | |
US11281669B2 (en) | Parallel processing database system | |
US8359318B2 (en) | System and method for distributed index searching of electronic content | |
US9817858B2 (en) | Generating hash values | |
CN107784044B (zh) | 表数据查询方法及装置 | |
US11301425B2 (en) | Systems and computer implemented methods for semantic data compression | |
US20200042510A1 (en) | Method and device for correlating multiple tables in a database environment | |
US11216516B2 (en) | Method and system for scalable search using microservice and cloud based search with records indexes | |
US10997037B1 (en) | Method and system for enhanced backup database indexing | |
KR101435789B1 (ko) | Dlp 시스템의 빅데이터 처리 시스템 및 방법 | |
CN106294695A (zh) | 一种面向实时大数据搜索引擎的实现方法 | |
US10496645B1 (en) | System and method for analysis of a database proxy | |
JP2015197909A (ja) | 大容量データを処理するための、sqlパーシングによる2レベルクエリー及び結果キャッシングを用いたオンライン分析プロセッシング方法 | |
US8825698B1 (en) | Showing prominent users for information retrieval requests | |
CN112199463A (zh) | 数据查询方法、装置及设备 | |
US10601749B1 (en) | Trends in a messaging platform | |
Bao et al. | Query optimization of massive social network data based on hbase | |
WO2021207831A1 (en) | Method and systems for indexing databases on a contextual basis | |
CN111177189B (zh) | 一种基于用户行为分析的客户端优化系统及方法 | |
Wang et al. | Distributed and parallel construction method for equi-width histogram in cloud database | |
CN113449003B (zh) | 信息查询的方法、装置、电子设备及介质 | |
CN113535782B (zh) | 一种bi报表查询响应方法、系统、电子设备及计算机可读存储介质 | |
CN118093654A (zh) | 一种支持航天工程大规模数据查询检索方法及系统 | |
CN117149908A (zh) | 基于Elasticsearch的数据同步方法及设备 |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210309 Address after: 101300 309, 3rd floor, 60 Fuqian 1st Street, Tianzhu District, Shunyi District, Beijing Patentee after: Beijing longzhixin Technology Co.,Ltd. Address before: 100041 room 120, 4th floor, building 17, yard 30, Shixing street, Shijingshan District, Beijing Patentee before: BEIJING PANDA MUTUAL ENTERTAINMENT TECHNOLOGY Co.,Ltd. |
|
TR01 | Transfer of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200821 |