评论数据的查询方法、装置、设备及存储介质
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种评论数据的查询方法、装置、设备及存储介质。
背景技术
发表和浏览评论这类UGC(User Generated Content,用户生成内容)场景作为用户的核心交互体验,已成为UGC产品的标配。大部分基于内容分享的应用程序或网站(内容发布平台)均提供评论服务。
内容发布平台的提供方往往拥有不止一个内容发布平台。相同的内容在同一提供方的不同内容发布平台发布已成为趋势,相应的,催生出不同内容发布平台的数据隔离、数据互通等不同的需求。
对于数据隔离需求,目前的实现方式是针对不同的内容发布平台对应不同的数据结构以及数据库。对于数据互通需求,目前的实现方式是各内容发布平台对应相同的数据结构及数据库。
目前的实现方式无法灵活应对评论需求的变化。
发明内容
本申请实施例提供一种评论数据的查询方法、装置、设备及存储介质,以达到灵活查询的目的。
第一方面,本申请实施例提供一种评论数据的查询方法,包括:
接收针对目标内容的数据查询请求,该数据查询请求中携带对应的标识信息,该数据查询请求对应的标识信息至少包括上述目标内容的标识信息;
获取上述数据查询请求对应的标签信息,该标签信息是至少根据发送该数据查询请求的客户端的标识信息确定的;
根据上述数据查询请求的指示,利用上述目标内容的标识信息对应的数据结构,在目标数据库中查找目标评论数据,目标评论数据为上述目标内容的评论数据且对应的标签信息与上述数据查询请求对应的标签信息匹配;
返回查找到的评论数据。
其中,目标数据库中保存有包括上述目标内容在内的多个内容和该多个内容各自的标识信息,每个内容与其标识信息关联保存;目标数据库中还保存有该多个内容的回复评论数据、回复评论评论数据各自的标识信息、回复评论评论数据各自的所回复的数据的标识信息和回复评论数据各自对应的标签信息,每个回复评论数据与其标识信息、对应的标签信息及所回复的数据的标识信息关联保存,回复评论数据所回复的数据为内容或评论数据;内容的评论数据包括回复评论数据,评论数据对应的标签信息至少是根据发表该评论数据的客户端的标识信息确定的;
每个内容的标识信息对应的数据结构中,本内容对应根节点,本内容的标识信息为根结点的标识信息,本内容的各个回复评论数据分别对应一个叶子结点,回复评论数据的标识信息为对应的叶子结点的标识信息,回复评论数据对应的标签信息为对应的叶子结点的标签信息,回复评论数据所回复的数据对应的结点为本回复评论数据对应的叶子结点的父结点。
本发明实施例提供的查询方法是基于新的数据结构实现的。本发明实施例中,该新的数据结构被称为森林模式的数据结构。具体的,该数据结构的每个叶子结点均对应有标签信息,标签信息是根据该叶子结点对应的评论数据的发表客户端的标识信息确定的,即,叶子结点的标签信息反映了对应的评论数据的来源。通过对数据结构的叶子结点打标签,基于同一个根结点,也可以得到不同标签信息对应的数据结构,应对灵活的业务场景对应的查询需求。例如,对于数据隔离的查询需求,通过标签信息可以筛选特定来源的评论数据,实现不同来源的评论数据的隔离;而对于数据互通的查询需求,可以通过配置规定根据不同来源确定的标签信息相互匹配,从而可以获取不同来源的评论评论数据,实现数据互通。可见,本发明实施例基于上述新的数据结构,可以实现灵活的数据查询需求。
在此基础上,上述目标数据库中还保存有上述多个内容的引用评论数据、引用评论数据各自的标识信息、引用评论数据各自的所直接的评论数据的标识信息和引用评论数据各自对应的标签信息,每个引用评论数据与其标识信息、对应的标签信息及所直接引用的评论数据的标识信息关联保存;内容的评论数据还包括引用评论数据;
内容的至少一个评论数据既为回复评论数据,又为引用评论数据;
每个内容的标识信息对应的数据结构中,本内容的各个引用评论数据分别对应一个叶子结点,引用评论数据的标识信息为对应的叶子结点的标识信息,引用评论数据对应的标签信息为对应的叶子结点的标签信息,引用评论数据所直接引用的评论数据对应的叶子结点为本引用评论数据对应的叶子结点的兄结点,引用评论数据所直接或间接引用的距离最近的回复评论数据对应的叶子结点为本引用评论数据对应的叶子结点的父结点。
在该实施例中,本发明实施例提供的新的数据结构中还包括兄节点,兄节点反映了评论数据的引用关系。那么,基于这样的数据结构,既可以支持评论数据的引用,也能够支持评论数据的回复,甚至可以根据业务场景的需要同时支持回复和引用,提高了评论服务的灵活性。
在此基础上,上述目标数据库中还保存有上述引用评论数据各自对应的引用数组,引用评论数据对应的引用数组包括本引用评论数据所直接或间接引用的评论数据的数据集合,引用评论数据对应的引用数组与本引用评论数据的标识信息关联保存。
在目标数据库中关联保存有引用评论数据对应的引用数组,那么在需要查询该引用评论数据所直接或间接引用的评论数据时,可以从该引用数组中查询,而不需要递归查询,提高查询效率,缩短查询延时。
在此基础上,引用评论数据的引用数组中还可以包括本引用评论数据所直接或间接引用的评论数据各自对应的标签信息。相应的,若上述数据查询请求指示获取特定引用评论数据所直接和间接引用的数据,在目标数据库中查找目标评论数据时:可以获取特定引用评论数据对应的引用数组;将所述数据查询请求对应的标签信息与特定引用评论数据对应的引用数组中各个评论数据对应的标签信息进行匹配,对应标签信息匹配成功的评论数据为目标评论数据。
通过在引用数组中增加标签信息,可以区别引用数组中各个评论数据的来源,从而根据业务场景的需求灵活查找所需要的评论数据。
相应的,目标数据库中还可以保存有部分内容各自对应的引用数组,内容对应的引用数组包括本内容所直接或间接引用的数据的数据集合,内容对应的引用数组与本内容的标识信息关联保存,内容所直接或间接引用的数据为内容或评论数据。
在目标数据库中关联保存有内容对应的引用数组,那么在需要查询该内容所直接或间接引用的评论数据时,可以从该引用数组中查询,而不需要递归查询,提高查询效率,缩短查询延时。
在上述任意方法实施例的基础上,上述根据数据查询请求的指示,利用上述目标内容的标识信息对应的数据结构,在目标数据库中查找目标评论数据,其实现方式可以是:根据数据查询请求的指示,确定目标内容的标识信息对应的数据结构的查询范围;利用目标内容的标识信息对应的数据结构,在目标数据库中遍历查询范围内各个叶子结点对应的评论数据,从中查找目标评论数据。
本发明实施例提供的方法,根据数据查询请求的指示,确定目标内容的标识信息对应的数据结构的查询范围,而不需要遍历数据结构,提高了查询效率,降低了查询时间。
在上述任意方法实施例的基础上,上述目标数据库包括评论数据表,每个内容对应至少一个评论数据表,评论数据表包括如下字段:评论数据的标识信息,评论数据所回复的数据的标识信息,评论数据对应的标签信息。
现有的评论服务的底层数据库为二级数据表结构:评论数据表和回复数据表。该二级数据表结构导致对应的评论服务只能提供二级评论服务。本发明实施例中,打破二级数据表结构,在数据库层面,将评论、回复、引用均作为评论数据处理,均保存在上述字段结构的评论数据表中,使得评论服务不仅限于二级评论,支持灵活的评论服务需求。
在上述任意方法实施例的基础上,数据查询请求对应的标签信息是根据发送数据查询请求的客户端的标识信息,以及发送数据查询请求的客户端的版本标识信息和/或发送数据查询请求的客户端的用户类型信息确定的;评论数据的标签信息是根据发表本评论数据的客户端的标识信息,以及发表本评论数据的客户端的版本标识信息和/或发表本评论数据的客户端的用户类型信息确定的。
本发明实施例中,标签信息指示了更细粒度的来源,因此可以支持更细粒度的数据隔离或数据互通需求。
第二方面,本申请实施例提供一种评论数据的查询装置,包括:
查询请求接收模块,用于接收针对目标内容的数据查询请求,该数据查询请求中携带对应的标识信息,该数据查询请求对应的标识信息至少包括上述目标内容的标识信息;
标签信息获取模块,用于获取上述数据查询请求对应的标签信息,该标签信息是至少根据发送该数据查询请求的客户端的标识信息确定的;
数据查询模块,用于根据上述数据查询请求的指示,利用上述目标内容的标识信息对应的数据结构,在目标数据库中查找目标评论数据,目标评论数据为上述目标内容的评论数据且对应的标签信息与上述数据查询请求对应的标签信息匹配;
数据返回模块,用于返回查找到的评论数据。
其中,目标数据库中保存有包括上述目标内容在内的多个内容和该多个内容各自的标识信息,每个内容与其标识信息关联保存;目标数据库中还保存有该多个内容的回复评论数据、回复评论数据各自的标识信息、回复评论数据各自的所回复的数据的标识信息和回复评论数据各自对应的标签信息,每个回复评论数据与其标识信息、对应的标签信息及所回复的数据的标识信息关联保存,回复评论数据所回复的数据为内容或评论数据;内容的评论数据包括回复评论数据,评论数据对应的标签信息至少是根据发表该评论数据的客户端的标识信息确定的;
每个内容的标识信息对应的数据结构中,本内容对应根节点,本内容的标识信息为根结点的标识信息,本内容的各个回复评论数据分别对应一个叶子结点,回复评论数据的标识信息为对应的叶子结点的标识信息,回复评论数据对应的标签信息为对应的叶子结点的标签信息,回复评论数据所回复的数据对应的结点为本回复评论数据对应的叶子结点的父结点。
本发明实施例提供的评论数据的查询装置是基于新的数据结构实现的。本发明实施例中,该新的数据结构被称为森林模式的数据结构。具体的,该数据结构的每个叶子结点均对应有标签信息,标签信息是根据该叶子结点对应的评论数据的发表客户端的标识信息确定的,即,叶子结点的标签信息反映了对应的评论数据的来源。通过对数据结构的叶子结点打标签,基于同一个根结点,也可以得到不同标签信息对应的数据结构,应对灵活的业务场景对应的查询需求。例如,对于数据隔离的查询需求,通过标签信息可以筛选特定来源的评论数据,实现不同来源的评论数据的隔离;而对于数据互通的查询需求,可以通过配置规定根据不同来源确定的标签信息相互匹配,从而可以获取不同来源的评论数据,实现数据互通。可见,本发明实施例基于上述新的数据结构,可以实现灵活的数据查询需求。
参照上述方法实施例,在本发明装置实施例中,目标数据库中还关联保存引用评论数据及相关信息所直接引用的评论数据的标识信息;相应的,引用评论数据所直接引用的评论数据对应的叶子结点为本引用评论数据对应的叶子结点的兄结点,引用评论数据所直接或间接引用的距离最近的回复评论数据对应的叶子结点为本引用评论数据对应的叶子结点的父结点。
参照上述方法实施例,在本发明装置实施例中,目标数据库中还保存有引用评论数据对应的引用数组,内容对应的引用数组。
在此基础上,引用评论数据的引用数组中还可以包括本引用评论数据所直接或间接引用的评论数据各自对应的标签信息。相应的,若上述数据查询请求指示获取特定引用评论数据所直接和间接引用的数据,所述数据查询模块可以获取特定引用评论数据对应的引用数组;将所述数据查询请求对应的标签信息与特定引用评论数据对应的引用数组中各个评论数据对应的标签信息进行匹配,对应标签信息匹配成功的评论数据为目标评论数据。
通过在引用数组中增加标签信息,可以区别引用数组中各个评论数据的来源,从而根据业务场景的需求灵活查找所需要的评论数据。
在上述任意装置实施例的基础上,上述数据查询模块具体可以用于:根据数据查询请求的指示,确定目标内容的标识信息对应的数据结构的查询范围;利用目标内容的标识信息对应的数据结构,在目标数据库中遍历查询范围内各个叶子结点对应的评论数据,从中查找目标评论数据。
本发明实施例提供的装置,根据数据查询请求的指示,确定目标内容的标识信息对应的数据结构的查询范围,而不需要遍历数据结构,提高了查询效率,降低了查询时间。
在上述任意装置实施例的基础上,上述目标数据库包括评论数据表,每个内容对应至少一个评论数据表,评论数据包括如下字段:评论数据的标识信息,评论数据所回复的数据的标识信息,评论数据对应的标签信息。
现有的评论服务的底层数据库为二级数据表结构:评论数据表和回复数据表。该二级数据表结构导致对应的评论服务只能提供二级评论服务。本发明实施例中,打破二级数据表结构,在数据库层面,将评论、回复、引用均作为评论数据处理,均保存在上述字段结构是评论数据表中,使得评论服务不仅限于二级评论,支持灵活的评论服务需求。
在上述任意装置实施例的基础上,数据查询请求对应的标签信息是根据发送数据查询请求的客户端的标识信息,以及发送数据查询请求的客户端的版本标识信息和/或发送数据查询请求的客户端的用户类型信息确定的;评论数据的标签信息是根据发表本评论数据的客户端的标识信息,以及发表本评论数据的客户端的版本标识信息和/或发表本评论数据的客户端的用户类型信息确定的。
本发明实施例中,标签信息指示了更细粒度的来源,因此可以支持更细粒度的数据隔离或数据互通需求。
第三方面,本申请实施例还提供一种计算机设备,包括处理器和存储器;
存储器用于存储执行各个方法实施例所述方法的程序;处理器被配置为执行存储器中存储的程序。
本申请实施例提供的计算机设备,是基于新的数据结构实现的。本发明实施例中,该新的数据结构被称为森林模式的数据结构。具体的,该数据结构的每个叶子结点均对应有标签信息,标签信息是根据该叶子结点对应的评论数据的发表客户端的标识信息确定的,即,叶子结点的标签信息反映了对应的评论数据的来源。通过对数据结构的叶子结点打标签,基于同一个根结点,也可以得到不同标签信息对应的数据结构,应对灵活的业务场景对应的查询需求。例如,对于数据隔离的查询需求,通过标签信息可以筛选特定来源的评论数据,实现不同来源的评论数据的隔离;而对于数据互通的查询需求,可以通过配置规定根据不同来源确定的标签信息相互匹配,从而可以获取不同来源的评论数据,实现数据互通。可见,本发明实施例基于上述新的数据结构,可以实现灵活的数据查询需求。
第四方面,本申请实施例还提供一种计算机可读存储介质,存储有执行第一方面各个实施例所述方法的程序。
本申请实施例提供的计算机可读存储介质,是基于新的数据结构实现的。本发明实施例中,该新的数据结构被称为森林模式的数据结构。具体的,该数据结构的每个叶子结点均对应有标签信息,标签信息是根据该叶子结点对应的评论数据的发表客户端的标识信息确定的,即,叶子结点的标签信息反映了对应的评论数据的来源。通过对数据结构的叶子结点打标签,基于同一个根结点,也可以得到不同标签信息对应的数据结构,应对灵活的业务场景对应的查询需求。例如,对于数据隔离的查询需求,通过标签信息可以筛选特定来源的评论数据,实现不同来源的评论数据的隔离;而对于数据互通的查询需求,可以通过配置规定根据不同来源确定的标签信息相互匹配,从而可以获取不同来源的评论数据,实现数据互通。可见,本发明实施例基于上述新的数据结构,可以实现灵活的数据查询需求。
附图说明
图1为本申请实施例提供的评论数据展示界面示意图;
图2为本申请实施例提供的数据结构示意图;
图3为本申请实施例提供的评论数据的查询方法流程图;
图4为本申请实施例提供的评论数据的查询装置框图;
图5为本申请实施例提供的计算机设备结构示意图。
具体实施方式
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本申请实施例的技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请实施例技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。
为便于技术方案的理解,首先对本发明实施例中出现的关键词进行定义及说明。
内容,是指UGC场景下,终端用户在内容发布平台上发表的内容,包括图片、视频、文本等等。
评论数据,本发明实施例中,无论是针对内容的评论,针对评论的回复,针对评论的引用,在数据层面,均视为评论数据。
评论,是指针对内容发表的评论。
回复,是指针对评论数据(可以是某个评论,也可以是某个回复,还可以是某个引用)的评论,在数据结构中,回复对应的叶子结点为其所回复的评论数据对应的叶子结点的子节点。
引用,是指针对评论数据(可以是某个评论,也可以是某个回复,还可以是某个引用)的评论,与回复的区别在于,在数据结构中,引用对应的叶子结点与其所直接引用的评论数据对应的叶子结点为同级结点。
应当指出的是,除了针对评论数据的引用,还可以有针对内容的引用(又称为转发)。这种引用数据被视为一个新的内容。
转发,是指引用评论数据或内容进行内容发表,转发数据被视为一个新的内容。
如图1所示,用户A发表了内容a。用户B、用户C、用户D、用户E和用户F发表的评论数据均为内容a的评论数据。区别在于,在应用层面,用户B发表的评论a1和用户B发表的评论a2均为对内容a的直接评论,在数据结构中,评论a1和评论a2各自对应的叶子结点为同级结点;用户D发表的评论数据是针对评论a2的回复,在数据结构中,评论a2对应的叶子结点为用户D发表的评论数据对应的叶子结点的父结点;用户E发表的评论a3是对评论a2的直接引用,用户F发表的评论a4是对评论a3的直接引用、对评论a2的间接引用,在数据结构中,评论a3、评论a4与评论a2各自对应的叶子结点为同级叶子结点。
图1中,用户b、用户c、用户d发表的均为内容A的回复评论数据,用户e、用户f发表的为内容A的引用评论数据。
可见,内容的回复评论数据是指对该内容或该内容的评论数据进行回复而发表的评论数据,内容的引用评论数据是指对该内容的评论数据进行引用而发表的评论数据。
应当指出的是,图1仅为解释上述概念所给出的示意图,不构成对评论服务具体展现方式的限定。
基于上述概念,本发明实施例提供的数据结构中,一个内容对应一个数据结构,内容对应根节点,本内容的标识信息为根结点的标识信息,本内容的各个评论数据分别对应一个叶子结点,评论数据的标识信息为对应的叶子结点的标识信息,评论数据对应的标签信息为对应的叶子结点的标签信息,其中,回复评论数据所回复的评论数据对应的叶子结点为本评论数据对应的叶子结点的父结点。
其中,评论数据对应的标签信息至少是根据发表该评论数据的客户端的标识信息确定的。
通过上述数据结构,可以提供基于数据结构的level(层级)递增的回复模式,该模式提供了纵向评论数据拉链演进方向。
在此基础上,更进一步的,上述数据结构中,引用评论数据所直接引用的评论数据对应的叶子结点为本引用评论数据对应的叶子结点的兄结点,引用评论数据所直接或间接引用的距离最近的回复评论数据对应的叶子结点为本引用评论数据对应的叶子结点的父结点。
通过上述数据结构,可以提供基于兄结点的标识信息的引用模式,该模式提供了横向评论数据拉链演进方向。横纵两个方向的评论数据拉链演进方向足以支撑当前各个客户端的复杂业务场景需求。
支持横纵两个方向的评论数据拉链演进方向的数据结构如图2所示。
图2中的数据结构共有3个level,根节点的level属性值为0,根节点对应内容A,因此,根节点的标识信息(ID)为内容A的ID;叶子结点的ID为对应的评论数据ID,level属性值为1的叶子结点对应内容A的回复评论数据或引用同级评论数据的引用评论数据,level属性值为2的叶子结点对应内容A的用于回复level1的回复评论数据(例如,评论数据E是对评论数据B的回复)或者引用同级评论数据的引用评论数据(例如,评论数据F是对评论数据E的引用)。
图2中,评论数据B、C、D、E、H、I、J、K、L和M均为内容A的回复评论数据,评论数据C、D、F、G、J均为内容A的引用评论数据。可见,一个评论数据可以同时作为回复评论数据和引用评论数据。
图2中,评论数据J既是回复评论数据,也是引用评论数据,那么其对应的叶子结点的父结点为该评论数据作为回复评论数据所回复的数据(内容A)对应的结点,即根节点结点A。因此,当一个评论数据既是回复评论数据,又是引用评论数据时,其对应的叶子结点的父结点为其所回复的数据对应的叶子结点。
图2中,评论数据F和评论数据G是引用评论数据,但不是回复评论数据,那么,其对应的叶子结点的父结点是其直接或间接引用的距离最近的回复评论数据对应的叶子结点的父结点,因此,评论数据F和评论数据G对应的叶子结点的父结点为评论数据B对应的叶子结点。
图2中,评论数据B、C、D、E、F、G的标签信息均为X,而评论数据H、I、J、K、L、M的标签信息均为Y。那么,在进行索引时,根据标签信息,图2所示的数据结构可以衍生为仅包含标签信息为X的数据结构、仅包含标签信息为Y的数据结构和图2所示的数据结构。
应当指出的是,图2所示的数据结构仅作为举例,而不能作为对本发明实施例提供的数据结构的限定。例如,实际应用中,数据结构可以为多层,还包括level3、levle4等等。
本发明实施例中,两个结点之间的距离是指从一个结点索引到另一个结点需要跳转的结点数量。
为支持上述数据结构,本发明实施例中,存储有评论数据的目标数据库中保存有包括多个内容和该多个内容各自的标识信息,每个内容与其标识信息关联保存;目标数据库中还保存有该多个内容的回复评论数据、回复评论评论数据各自的标识信息、回复评论评论数据各自的所回复的数据的标识信息和回复评论数据各自对应的标签信息,每个回复评论数据与其标识信息、对应的标签信息及所回复的数据的标识信息关联保存,回复评论数据所回复的数据为内容或评论数据;内容的评论数据包括回复评论数据,评论数据对应的标签信息至少是根据发表该评论数据的客户端的标识信息确定的。
若对应图2所示的数据结构,进一步的,上述目标数据库中还保存有上述多个内容的引用评论数据、引用评论数据各自的标识信息、引用评论数据各自的所直接的评论数据的标识信息和引用评论数据各自对应的标签信息,每个引用评论数据与其标识信息、对应的标签信息及所直接引用的评论数据的标识信息关联保存;内容的评论数据还包括引用评论数据。
本发明实施例不对目标数据库的数据表结构进行限定。优选的,每个内容对应至少一个评论数据表。实际应用中,当内容对应的评论数据较少,则可以利用一个评论数据表保存相关数据,若评论数据较多,则需要利用两个甚至更多的评论数据表进行相关数据的保存。评论数据表至少包括如下字段:
评论数据的标识信息,评论数据所回复的数据的标识信息,评论数据对应的标签信息。
可选的,评论数据表中还包括评论数据字段,该字段下保存评论数据。
可选的,若上述数据结构支持横向评论数据拉链演进,那么,评论数据表中还包括评论数据所直接引用的数据的标识信息。
其中,评论数据所回复的数据的标识信息这一字段实际存放的是本评论数据对应的叶子结点的父结点对应的数据的标识信息。评论数据所直接引用的数据的标识信息这一字段实际存放的是本评论数据对应的叶子结点的兄结点对应的评论数据的标识信息。
现有的评论服务的底层数据库为二级数据表结构:评论数据表和回复数据表。该二级数据表结构导致对应的评论服务只能提供二级评论服务。本发明实施例中,打破二级数据表结构,在数据库层面,将评论、回复、引用均作为评论数据处理,均保存在上述字段结构是评论数据表中,使得评论服务不仅限于二级评论,支持灵活的评论服务需求。
应当指出的是,本发明实施例提供的数据结构也支持现有的二级数据表结构。具体可以通过Level、内容Id、父结点Id实现映射。其中,内容(评论Id=内容Id,父结点Id=0)为Level0,现有数据表中的评论(父结点Id=内容Id)为Level1,现有数据表中的回复(父结点Id=Level1_评论ID)为Level2。
基于上述各个实施例提供的新的数据结构,本发明实施例提供一种评论数据的查询方法,本发明实施例提供的方法应用在网络设备上,具体是应用在对目标数据库进行操作的网络设备上,如图3所示,该方法包括:
步骤101、接收针对目标内容的数据查询请求,该数据查询请求中携带对应的标识信息,该数据查询请求对应的标识信息至少包括上述目标内容的标识信息。
其中,数据查询请求是根据用户在客户端上的操作而生成的,例如,用户在客户端上打开某个内容,在该内容界面上需要展示该内容的评论数据,那么,用户打开内容的行为就会触发数据查询请求。根据业务场景的不同,有些数据查询请求仅需要携带目标内容的标识信息,有些数据查询请求不仅携带目标内容的标识信息,还携带评论数据的标识信息,这种情况下,将该评论数据对应的叶子结点作为索引的起点,进行评论数据的查询。
步骤102、获取上述数据查询请求对应的标签信息,该标签信息是至少根据发送该数据查询请求的客户端的标识信息确定的。
本发明实施例中,数据查询请求可以是客户端生成并发送的,也可能是某个网络设备响应客户端的请求生成并发送的,无论哪种情况,由于数据查询请求都是基于用户在客户端的操作产生的,因此,在本发明实施例中,发送数据查询请求的客户端可以是直接发送该数据查询请求的客户端,也可以是响应用户的操作发送请求进而触发网络设备发送数据查询请求的客户端。
本发明实施例中,客户端可以是指终端上的应用程序,还可以是指访问内容发布网站的浏览器。如果是应用程序,客户端的标识信息就是应用程序的标识信息(ID),如果是访问内容发布网站的浏览器,客户端的标识信息可以是浏览器的标识信息和内容发布网站的标识信息,也可以是内容发布网站的标识信息。其中,内容发布网站的标识信息可以是内容发布网站的ULR地址,DNS,IP地址等等。
本发明实施例中,一种实现方式中,数据查询请求中可以携带其对应的标签信息,那么,从数据查询请求中读取该标签信息。一种实现方式中,数据查询请求中也可以携带客户端的标识信息,那么,从数据查询请求中获取该标识信息,并根据该标识信息确定标签信息,实现标签信息的获取。另一种实现方式中,在与数据查询请求的发送方建立通信链接时,获取客户端的标识信息并保存,在需要获取标签信息时,读取保存的客户端的标识信息,确定标签信息。又一种实现方式中,在与数据查询请求的发送方建立通信链接时,获取客户端的标识信息,利用标识信息确定标签信息并保存,当需要获取数据查询请求对应的标签信息时,读取预先确定并保存的标签信息。
本发明实施例中,如果标签信息仅根据客户端的标识信息确定,那么,该标签信息可以是客户端的标签信息本身,也可以是按照预定的计算规则对标签信息进行计算得到的。
步骤103、根据上述数据查询请求的指示,利用上述目标内容的标识信息对应的数据结构,在目标数据库中查找目标评论数据,目标评论数据为上述目标内容的评论数据且对应的标签信息与上述数据查询请求对应的标签信息匹配。
步骤104、返回查找到的评论数据。
本发明实施例提供的查询方法是基于上述新的数据结构实现的。本发明实施例中,该新的数据结构被称为森林模式的数据结构。具体的,该数据结构的每个叶子结点均对应有标签信息,标签信息是根据该叶子结点对应的评论数据的发表客户端的标识信息确定的,即,叶子结点的标签信息反映了对应的评论数据的来源。通过对数据结构的叶子结点打标签,基于同一个根结点,也可以得到不同标签信息对应的数据结构,应对灵活的业务场景对应的查询需求。例如,对于数据隔离的查询需求,通过标签信息可以筛选特定来源的评论数据,实现不同来源的评论数据的隔离;而对于数据互通的查询需求,可以通过配置规定根据不同来源确定的标签信息相互匹配,从而可以获取不同来源的评论评论数据,实现数据互通。可见,本发明实施例基于上述新的数据结构,可以实现灵活的数据查询需求。
在另一个实施例中,本发明实施例提供的新的数据结构中还包括兄节点,兄节点反映了评论数据的引用关系。那么,基于这样的数据结构,既可以支持评论数据的引用,也能够支持评论数据的回复,甚至可以根据业务场景的需要同时支持回复和引用,提高了评论服务的灵活性。相应的,本发明实施例提供的查询方法,在进行评论数据查询时,不仅能够基于纵向评论数据拉链演进方向进行回复评论数据的查询,还可以基于横向评论数据拉链演进方向进行引用评论数据的查询,进一步提高了查询的灵活性,支持不同业务场景中的数据查询需求。
在此基础上,上述目标数据库中还保存有上述引用评论数据各自对应的引用数组,引用评论数据对应的引用数组包括本引用评论数据所直接或间接引用的评论数据的数据集合,引用评论数据对应的引用数组与本引用评论数据的标识信息关联保存。
在目标数据库中关联保存有引用评论数据对应的引用数组,那么在需要查询该引用评论数据所直接或间接引用的评论数据时,可以从该引用数组中查询,而不需要递归查询,提高查询效率,缩短查询延时。
在此基础上,引用评论数据的引用数组中还可以包括本引用评论数据所直接或间接引用的评论数据各自对应的标签信息。相应的,若上述数据查询请求指示获取特定引用评论数据所直接和间接引用的数据,在目标数据库中查找目标评论数据时:可以获取特定引用评论数据对应的引用数组;将所述数据查询请求对应的标签信息与特定引用评论数据对应的引用数组中各个评论数据对应的标签信息进行匹配,对应标签信息匹配成功的评论数据为目标评论数据。
通过在引用数组中增加标签信息,可以区别引用数组中各个评论数据的来源,从而根据业务场景的需求灵活查找所需要的评论数据。
相应的,目标数据库中还可以保存有部分内容各自对应的引用数组,内容对应的引用数组包括本内容所直接或间接引用的数据的数据集合,内容对应的引用数组与本内容的标识信息关联保存,内容所直接或间接引用的数据为内容或评论数据。
在目标数据库中关联保存有内容对应的引用数组,那么在需要查询该内容所直接或间接引用的评论数据时,可以从该引用数组中查询,而不需要递归查询,提高查询效率,缩短查询延时。
在上述任意方法实施例的基础上,步骤103的一种实现方式可以是:根据数据查询请求对应的标签信息确定索引所需要的、目标内容对应的数据结构;遍历该数据结构中各个叶子结点对应的评论数据,作为目标评论数据。
仍以图2所示的数据结构为例,如上所述,根据标签信息的不同,该数据结构可以拆分为仅包含标签信息X对应的叶子结点的数据结构,仅包含标签信息Y对应的叶子结点的数据结构,和图2所示的完整数据结构。那么,根据标签信息确定所需要的其中一个数据结构。确定策略与业务场景有关,例如,对于数据双向隔离的业务场景,如果数据查询请求对应的标签信息为X,那么,索引所需要的数据结构为仅包含标签信息X对应的叶子结点的数据结构;对于数据单向隔离的业务场景,假设标签信息X的应用程序可以使用标签信息Y的应用程序的评论数据,但标签信息Y的应用程序无法使用标签信息X的应用程序的评论数据,如果数据查询请求对应的标签信息为X,那么,索引所需要的数据结构为图2所示的完整数据结构,如果数据查询请求对应的标签信息为Y,那么,索引所需要的数据结构为仅包含标签信息Y对应的叶子结点的数据结构;对于数据互通的业务场景,即,标签信息X的应用程序与标签信息Y的应用程序可以相互使用对方的评论数据,那么,无论数据查询请求对应的标签信息为X或Y,索引所需要的数据结构为图2所示的完整数据结构。
上述实现方式可以一次性拉取目标内容的所有评论数据,客户端根据需要进行展示,可以减少客户端刷新界面时的加载时间。
步骤103的另一种实现方式可以是:根据数据查询请求对应的标签信息确定索引所需要的、目标内容对应的数据结构;以数据查询请求中携带的评论数据的标识信息对应的叶子结点为起点,遍历该数据结构中各个叶子结点对应的评论数据,作为目标评论数据。
步骤103的另一种实现方式可以是:根据数据查询请求的指示,确定目标内容的标识信息对应的数据结构的查询范围;利用目标内容的标识信息对应的数据结构,在目标数据库中遍历查询范围内各个叶子结点对应的评论数据,从中查找目标评论数据。
其中,数据结构仍然可以是根据数据查询请求对应的标签信息确定的。
其中,数据查询请求的指示可以但不仅限于是指示了该数据查询请求是对应的客户端的触发行为,预先保存有触发行为与查询范围的对应关系。
本发明实施例提供的方法,根据数据查询请求的指示,确定目标内容的标识信息对应的数据结构的查询范围,而不需要遍历数据结构,提高了查询效率,降低了查询时间。
在上述任意方法实施例的基础上,数据查询请求对应的标签信息是根据发送数据查询请求的客户端的标识信息,以及发送数据查询请求的客户端的版本标识信息和/或发送数据查询请求的客户端的用户类型信息确定的;评论数据的标签信息是根据发表本评论数据的客户端的标识信息,以及发表本评论数据的客户端的版本标识信息和/或发表本评论数据的客户端的用户类型信息确定的。
本发明实施例中,标签信息指示了更细粒度的来源,因此可以支持更细粒度的数据隔离或数据互通需求。
其中,客户端的版本可以是指客户端迭代更新的版本,也可以是指客户端对应的多个版本,例如国内版、海外版,实际应用中,根据需要确定。
其中,客户端的用户类型信息反映了该客户端的使用账户的权限。
假设标签信息是根据客户端的标识信息和版本标识信息确定的,那么,标签信息可以是这两个信息按照预定的顺序级联,也可以是这两个信息分别按照预定的计算方式进行计算,计算结果按照预定的顺序级联,还可以是这两个信息级联后按照预定的方式进行计算得到的计算结果,还可以是按照预定的计算方式对这两个信息进行计算得到计算解雇偶。
上述提到了数据的双向隔离、单项隔离,在更细粒度的来源指示前提下,可以做到更细粒度的数据双向隔离、单项隔离。
基于与方法同样的发明构思,本申请实施例提供一种,如图4所示,包括:
查询请求接收模块201,用于接收针对目标内容的数据查询请求,该数据查询请求中携带对应的标识信息,该数据查询请求对应的标识信息至少包括上述目标内容的标识信息;
标签信息获取模块202,用于获取上述数据查询请求对应的标签信息,该标签信息是至少根据发送该数据查询请求的客户端的标识信息确定的;
数据查询模块203,用于根据上述数据查询请求的指示,利用上述目标内容的标识信息对应的数据结构,在目标数据库中查找目标评论数据,目标评论数据为上述目标内容的评论数据且对应的标签信息与上述数据查询请求对应的标签信息匹配;
数据返回模块204,用于返回查找到的评论数据。
本发明实施例提供的评论数据的查询装置是基于新的数据结构实现的。本发明实施例中,该新的数据结构被称为森林模式的数据结构。具体的,该数据结构的每个叶子结点均对应有标签信息,标签信息是根据该叶子结点对应的评论数据的发表客户端的标识信息确定的,即,叶子结点的标签信息反映了对应的评论数据的来源。通过对数据结构的叶子结点打标签,基于同一个根结点,也可以得到不同标签信息对应的数据结构,应对灵活的业务场景对应的查询需求。例如,对于数据隔离的查询需求,通过标签信息可以筛选特定来源的评论数据,实现不同来源的评论数据的隔离;而对于数据互通的查询需求,可以通过配置规定根据不同来源确定的标签信息相互匹配,从而可以获取不同来源的评论数据,实现数据互通。可见,本发明实施例基于上述新的数据结构,可以实现灵活的数据查询需求。
参照上述方法实施例,在本发明装置实施例中,目标数据库中还关联保存引用评论数据及相关信息所直接引用的评论数据的标识信息;相应的,引用评论数据所直接引用的评论数据对应的叶子结点为本引用评论数据对应的叶子结点的兄结点,引用评论数据所直接或间接引用的距离最近的回复评论数据对应的叶子结点为本引用评论数据对应的叶子结点的父结点。
参照上述方法实施例,在本发明装置实施例中,目标数据库中还保存有引用评论数据对应的引用数组,内容对应的引用数组。
在此基础上,引用评论数据的引用数组中还可以包括本引用评论数据所直接或间接引用的评论数据各自对应的标签信息。相应的,若上述数据查询请求指示获取特定引用评论数据所直接和间接引用的数据,所述数据查询模块可以获取特定引用评论数据对应的引用数组;将所述数据查询请求对应的标签信息与特定引用评论数据对应的引用数组中各个评论数据对应的标签信息进行匹配,对应标签信息匹配成功的评论数据为目标评论数据。
通过在引用数组中增加标签信息,可以区别引用数组中各个评论数据的来源,从而根据业务场景的需求灵活查找所需要的评论数据。
在上述任意装置实施例的基础上,上述数据查询模块具体可以用于:根据数据查询请求的指示,确定目标内容的标识信息对应的数据结构的查询范围;利用目标内容的标识信息对应的数据结构,在目标数据库中遍历查询范围内各个叶子结点对应的评论数据,从中查找目标评论数据。
本发明实施例提供的装置,根据数据查询请求的指示,确定目标内容的标识信息对应的数据结构的查询范围,而不需要遍历数据结构,提高了查询效率,降低了查询时间。
在上述任意装置实施例的基础上,上述目标数据库包括评论数据表,每个内容对应至少一个评论数据表,评论数据包括如下字段:评论数据的标识信息,评论数据所回复的数据的标识信息,评论数据对应的标签信息。
现有的评论服务的底层数据库为二级数据表结构:评论数据表和回复数据表。该二级数据表结构导致对应的评论服务只能提供二级评论服务。本发明实施例中,打破二级数据表结构,在数据库层面,将评论、回复、引用均作为评论数据处理,均保存在上述字段结构是评论数据表中,使得评论服务不仅限于二级评论,支持灵活的评论服务需求。
在上述任意装置实施例的基础上,数据查询请求对应的标签信息是根据发送数据查询请求的客户端的标识信息,以及发送数据查询请求的客户端的版本标识信息和/或发送数据查询请求的客户端的用户类型信息确定的;评论数据的标签信息是根据发表本评论数据的客户端的标识信息,以及发表本评论数据的客户端的版本标识信息和/或发表本评论数据的客户端的用户类型信息确定的。
本发明实施例中,标签信息指示了更细粒度的来源,因此可以支持更细粒度的数据隔离或数据互通需求。
基于与方法同样的发明构思,本申请实施例提供一种计算机设备,包括处理器和存储器;存储器用于存储执行各个方法实施例所述方法的程序;处理器被配置为执行存储器中存储的程序。
本申请实施例提供的计算机设备,本发明实施例中,该新的数据结构被称为森林模式的数据结构。具体的,该数据结构的每个叶子结点均对应有标签信息,标签信息是根据该叶子结点对应的评论数据的发表客户端的标识信息确定的,即,叶子结点的标签信息反映了对应的评论数据的来源。通过对数据结构的叶子结点打标签,基于同一个根结点,也可以得到不同标签信息对应的数据结构,应对灵活的业务场景对应的查询需求。例如,对于数据隔离的查询需求,通过标签信息可以筛选特定来源的评论数据,实现不同来源的评论数据的隔离;而对于数据互通的查询需求,可以通过配置规定根据不同来源确定的标签信息相互匹配,从而可以获取不同来源的评论数据,实现数据互通。可见,本发明实施例基于上述新的数据结构,可以实现灵活的数据查询需求。
图5示出的是与本申请实施例提供的方法实施例相关的计算机设备的部分结构的框图。参考图5,计算机设备包括:
电源,通过电源管理系统与中央处理器逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能;主板,提供部件之间的电连接通路,各个部件通过主板进行电信号传输,各个部件通过插接、焊接等方式安装在主板上;中央处理器,主要包括算术逻辑运算单元(ALU,Arithmetic Logic Unit)、程序计数器(PC,Program Counter)、寄存器组、高速缓冲存储器(Cache)以及用于传输数据、控制及状态的总线(Bus)接口;内存储器、磁盘(即上述保存有执行各个方法实施例所述方法的程序的存储器)、输入单元(包括鼠标、键盘、触控面板等)、显示单元(包括显示器和显卡)和网卡通过总线与中央处理器进行数据交换。
执行各个方法实施例所述方法的程序及相关的数据首先从磁盘中被读取到内存储器中,中央处理器从内存储器中读取并加载程序。
本领域技术人员可以理解,图5中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
基于与方法同样的发明构思,本申请实施例提供一种计算机可读存储介质,存储有执行第一方面各个实施例所述方法的程序。
本申请实施例提供的计算机可读存储介质,是基于新的数据结构实现的。本发明实施例中,该新的数据结构被称为森林模式的数据结构。具体的,该数据结构的每个叶子结点均对应有标签信息,标签信息是根据该叶子结点对应的评论数据的发表客户端的标识信息确定的,即,叶子结点的标签信息反映了对应的评论数据的来源。通过对数据结构的叶子结点打标签,基于同一个根结点,也可以得到不同标签信息对应的数据结构,应对灵活的业务场景对应的查询需求。例如,对于数据隔离的查询需求,通过标签信息可以筛选特定来源的评论数据,实现不同来源的评论数据的隔离;而对于数据互通的查询需求,可以通过配置规定根据不同来源确定的标签信息相互匹配,从而可以获取不同来源的评论数据,实现数据互通。可见,本发明实施例基于上述新的数据结构,可以实现灵活的数据查询需求。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本说明书的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本说明书范围的所有变更和修改。
显然,本领域的技术人员可以对本说明书进行各种改动和变型而不脱离本说明书的精神和范围。这样,倘若本说明书的这些修改和变型属于本说明书权利要求及其等同技术的范围之内,则本说明书也意图包含这些改动和变型在内。