首页> 中国专利> 检索方法、查询方法、装置、系统、电子设备和计算机存储介质

检索方法、查询方法、装置、系统、电子设备和计算机存储介质

摘要

本发明实施例提供了一种检索方法、查询方法、装置、系统、电子设备和计算机存储介质。所述检索方法,包括:获取检索条件,所述检索条件包括基于同一对象的结构化字段检索条件和非结构化数据检索条件;基于所述结构化字段检索条件,进行结构化字段索引,得到前序索引结果;基于所述非结构化数据检索条件,进行相似度索引,从所述前序索引结果中确定非结构化数据索引结果,以生成检索结果。由于通过计算开销较小的结构化字段索引得到前序索引结果,减少了索引范围,因此减小了后续的基于非结构化数据进行的相似度索引的计算开销,从而节省了计算资源。

著录项

  • 公开/公告号CN113297454A

    专利类型发明专利

  • 公开/公告日2021-08-24

    原文格式PDF

  • 申请/专利权人 阿里巴巴集团控股有限公司;

    申请/专利号CN202010291995.7

  • 发明设计人 楼仁杰;魏闯先;

    申请日2020-04-14

  • 分类号G06F16/9532(20190101);G06F16/951(20190101);

  • 代理机构11545 北京合智同创知识产权代理有限公司;

  • 代理人李杰;兰淑铎

  • 地址 英属开曼群岛大开曼资本大厦一座四层847号邮箱

  • 入库时间 2023-06-19 12:19:35

说明书

技术领域

本发明实施例涉及通信技术领域,尤其涉及一种检索方法、查询方法、装置、系统、电子设备和计算机存储介质。

背景技术

随着图像视屏等多媒体设备的发展,互联网中每天都会产生大量的图像、视屏等数据。为了能够深入分析图像和视屏中的内容必须先用深度学习抽取其中的特征向量,再利用向量分析引擎进行向量检索。例如,最常见的向量检索就是近似最近邻(ApproximateNearest Neighbor Search,ANN)检索。ANN检索的目的就是寻找高维空间中相近的向量,在服务层面就是相似图片搜索。向量服务器针对ANN检索开发了专用的ANN索引。但是,在很多服务中,还是存在改进的空间。

发明内容

有鉴于此,本发明实施例提供一种检索方法、查询方法、装置、系统、电子设备和计算机存储介质,以解决或缓解上述问题。

根据本发明实施例的第一方面,提供了一种检索方法,包括:获取检索条件,所述检索条件包括基于同一对象的结构化字段检索条件和非结构化数据检索条件,基于所述结构化字段检索条件,进行结构化字段索引,得到前序索引结果;基于所述非结构化数据检索条件,进行相似度索引,从所述前序索引结果中确定非结构化数据索引结果,以生成检索结果。

根据本发明实施例的第二方面,提供了一种查询方法,包括:获取查询请求,所述查询请求中包括待查询对象;响应所述查询请求,生成所述待查询对象的结构化字段检索条件和非结构化数据检索条件;向服务端发送结构化字段检索条件和非结构化数据检索条件,以便所述服务端基于所述结构化字段检索条件,进行结构化字段索引,得到前序索引结果,并且基于所述非结构化数据检索条件,进行相似度索引,从所述前序索引结果中确定非结构化数据索引结果;接收所述服务端返回的基于所述非结构化数据索引结果的查询结果。

根据本发明实施例的第三方面,提供了一种查询方法,包括:获取展示图片查询请求,所述展示图片查询请求中包括待查询图片;响应所述展示图片查询请求,生成所述待查询图片的结构化字段检索条件和非结构化数据检索条件;向服务端发送结构化字段检索条件和非结构化数据检索条件,以便所述服务端基于所述结构化字段检索条件,在展示图片数据集中进行结构化字段索引,得到前序索引结果,并且基于所述非结构化数据检索条件,进行相似度索引,从所述前序索引结果中确定非结构化数据索引结果;接收所述服务端返回的基于所述非结构化数据索引结果的查询结果,所述查询结果包括所述展示图片数据集中的满足所述展示图片查询请求的至少一个展示图片。

根据本发明实施例的第四方面,提供了一种查询装置,包括:获取模块,获取展示图片查询请求,所述展示图片查询请求中包括待查询图片;检索条件生成模块,响应所述展示图片查询请求,生成所述待查询图片的结构化字段检索条件和非结构化数据检索条件;发送模块,向服务端发送结构化字段检索条件和非结构化数据检索条件,以便所述服务端基于所述结构化字段检索条件,在展示图片数据集中进行结构化字段索引,得到前序索引结果,并且基于所述非结构化数据检索条件,进行相似度索引,从所述前序索引结果中确定非结构化数据索引结果;接收模块,接收所述服务端返回的基于所述非结构化数据索引结果的查询结果,所述查询结果包括所述展示图片数据集中的满足所述展示图片查询请求的至少一个展示图片。

根据本发明实施例的第五方面,提供了一种检索装置,包括:获取模块,获取检索条件,所述检索条件包括基于同一对象的结构化字段检索条件和非结构化数据检索条件,结构化字段索引模块,基于所述结构化字段检索条件,进行结构化字段索引,得到前序索引结果;相似度索引模块,基于所述特非结构化数据检索条件,进行相似度索引,从所述前序索引结果中确定非结构化数据索引结果,以生成检索结果。

根据本发明实施例的第六方面,提供了一种查询装置,包括:获取模块,获取查询请求,所述查询请求中包括待查询对象;检索条件生成模块,响应所述查询请求,生成所述待查询对象的结构化字段检索条件和非结构化数据检索条件;发送模块,向服务端发送结构化字段检索条件和非结构化数据检索条件,以便所述服务端基于所述结构化字段检索条件,进行结构化字段索引,得到前序索引结果,并且基于所述非结构化数据检索条件,进行相似度索引,从所述前序索引结果中确定非结构化数据索引结果;接收模块,接收所述服务端返回的基于所述非结构化数据索引结果的查询结果。

根据本发明实施例的第七方面,提供了一种查询系统,包括:前端节点和至少一个计算节点,所述前端节点用于:获取查询请求,所述查询请求中包括待查询对象;响应所述查询请求,生成所述待查询对象的结构化字段检索条件和非结构化数据检索条件;向所述至少一个计算节点发送所述结构化字段检索条件和所述非结构化数据检索条件;接收所述至少一个计算节点发送的基于所述非结构化数据索引结果的查询结果,所述至少一个计算节点用于:基于所述结构化字段检索条件,进行结构化字段索引,得到前序索引结果;基于所述非结构化数据检索条件,进行相似度索引,从所述前序索引结果中确定非结构化数据索引结果;基于所述非结构化数据索引结果,生成查询结果。

根据本发明实施例的第八方面,提供了一种电子设备,所述设备包括:一个或多个处理器;计算机可读介质,配置为存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的检索方法或第二方面或第三方面所述的查询方法。

根据本发明实施例的第九方面,提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的检索方法或第二方面或第三方面所述的查询方法。

本发明实施例的方案能够通过基于所述结构化字段检索条件,进行结构化字段索引,得到前序索引结果,然后基于所述非结构化数据检索条件,进行相似度索引,从所述前序索引结果中确定非结构化数据索引结果。由于通过计算开销较小的结构化字段索引得到前序索引结果,减少了索引范围,因此减小了后续的基于非结构化数据进行的相似度索引的计算开销,从而节省了计算资源。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1为本发明的一个实施例的检索方法所在的网络架构的示意性框图;

图2A为本发明的另一实施例的检索方法的示意性框图;

图2B-2D为本发明的另一实施例的检索方法的示意图;

图3为本发明的另一实施例的查询方法所在的网络架构的示意性框图;

图4A为本发明的另一实施例的查询方法的示意性框图;

图4B为本发明的另一实施例的查询方法的示意性框图;

图5为本发明的另一实施例的检索装置的示意性框图;

图6A为本发明的另一实施例的查询装置的示意性框图;

图6B为本发明的另一实施例的查询装置的示意性框图;

图6C为本发明的另一实施例的查询装置的示意性框图;

图7为本发明的另一实施例的电子设备的示意性结构图;

图8为本发明的另一实施例的电子设备的硬件结构。

具体实施方式

为了使本领域的人员更好地理解本发明实施例中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。

下面结合本发明实施例附图进一步说明本发明实施例具体实现。

图1为本发明的一个实施例的检索方法所在的网络架构的示意性框图。例如,根据本发明实施例的一个示例的网络架构可以包括客户端和服务端。例如,用户140所使用的用户设备150通过网络等与服务端连接。服务端可以包括WEB服务器、应用服务器、数据库服务器中的至少一者的服务器集群。服务端可以包括查询引擎110和计算节点。例如,计算节点可以为单一的服务器,也可以为服务器集群,例如,诸如云服务器的分布式服务器。图1示出根据本发明实施例的针对结构化数据和非结构化数据执行查询的逻辑框图。在一个实施例中,查询引擎110可以是可访问和处理关于不同类型的数据的查询的查询引擎。例如,如图1所示,查询引擎110可访问非结构化数据160。在本发明实施例中,查询引擎110可实施支持根据公共或公用查询规范语言(如SQL)的查询的接口,或者其他任意类型的格式化的查询。在本发明实施例中,查询引擎110还可以将以不同查询语言格式接收的查询翻译成另一种查询语言格式以供执行(例如,将SPL查询翻译成SQL查询)。

在本发明实施例中,查询引擎110可发送索引请求以对非结构化数据160执行查询。例如,在一个实施例中,可接收SQL查询,所述SQL查询指定针对非结构化数据160的另一个查询谓词。索引请求可生成具有结构化数据操作131和非结构化数据操作132的执行计划,以便执行这类SQL查询。在本发明实施例中,接收的其它查询可针对非结构化数据160,并且可确定适当的结构化数据操作131或非结构化数据操作131并将其包含在由索引请求生成的执行计划中。

在本发明实施例中,查询引擎110可实施结构化数据查询执行以执行结构化数据操作131。查询引擎110可还可以实施非结构化数据查询执行以执行非结构化数据操作132,从而应用非结构化数据操作132。

应理解,在本发明实施例中,结构化数据可以是根据预定义数据模型(如关系数据模型)存储的数据,在一个实施例中,所述非结构化输出存储可以预先对结构化数据进行标注。在一个实施例中,结构化数据可以不同类型的格式(如面向行的格式(例如,其中数据行一起存储在单个永久存储块中),或面向列的格式(例如,其中数据列一起存储在单个永久存储块中)存储。在一个实施例中,非结构化数据160可以是图片、视频等的向量数据。也可以是半结构化数据(如日志记录),或未结构化数据(如文本数据),或未完全结构化的任何其它数据。

还应理解,针对结构化数据和非结构化数据执行查询的先前描述是逻辑说明,并且因此不应被解释为限制查询引擎或其它示出的特征(如索引请求、结构化数据查询执行、非结构化数据查询执行,或用于结构化数据或非结构化数据的数据存储件)的实施方式。

本说明书开始于实施结构化数据处理的提供商网络的一般描述,所述结构化数据处理针对结构化数据和非结构化数据执行查询。接着讨论结构化数据处理服务的各种示例,所述结构化数据处理服务包含可作为实施所述技术的一部分而采用的不同组件/模块或组件/模块的布置。然后讨论用于实施针对结构化数据和非结构化数据执行查询的许多不同的方法和技术,其中一些在随附流程图中示出。最后,提供可在其上实施各种组件、模块、系统、装置和/或节点的示例计算系统的描述。在整个说明书中提供各种示例。

图2A为本发明的另一实施例的检索方法的示意性框图。图2A的检索方法,包括:

210:获取检索条件,检索条件包括基于同一对象的结构化字段检索条件和非结构化数据检索条件。

例如,所述对象可以经由处理成结构化数据、半结构化数据或非结构化数据。例如,所述对象可以为诸如图片、声音或视频等对象。例如,所述非结构化数据可以被标注而具有结构化数据。例如,非结构化数据可以为未经标注但可以经过识别处理而确定其结构化数据。结构化字段检索条件为针对所述对象的结构化数据的检索条件。所述对象可以为结构化数据可以为例如所述对象的属性信息。例如,结构化数据可以包括图片的大小、图片的颜色、图片的采集时间、图片的修改时间、视频的大小、视频的分辨率、视频的编码方式、视频的作者信息。例如,结构化数据还可以包括与客户端有关的信息,例如,客户端发起的查询的时间、客户端发起查询的地点、客户端中用户行为记录等。例如,结构化数据还可以包括从客户端输入的信息,例如,客户端输入的时间、地点、特定商品的价格、特定商品的款式、特定商品的销量、特定商品的品牌等。例如,非结构化数据检索条件可以为特征向量检索条件。例如,所述检索条件可以为客户端基于查询生成的子查询。例如,结构化字段检索条件可以为针对所述结构化数据具有的部分或全部特征字段,例如,关键词或关键字。

230:基于结构化字段检索条件,进行结构化字段索引,得到前序索引结果。

例如,确定结构化检索数据集,基于所述结构化检索数据集中所有的数据对象进行检索。或者,确定结构化检索数据集,基于结构化检索数据集的一部分进行检索,得到前序索引结果。例如,确定第一结构化检索数据集和第二结构化检索数据集,其中,所述第一结构化检索数据集和第二结构化检索数据集可以相互重叠。或者,第一结构化检索数据集和第二结构化检索数据集可以为相互交叉的集合。例如,基于第一结构化检索数据集中的数据对象进行检索,得到前序索引结果。换言之,结构化检索数据集中可以包括多个子数据集,例如,每个数据集中包括不同类型的结构化数据。例如,基于子数据集进行结构化索引,得到前序索引结果。例如,上述的情况同样适用于,当结构化字段检索条件中存在对不同类型的结构化数据的查询条件。换言之,可以只基于查询条件中的一部分,进行结构化字段索引,得到前序索引结果。例如,结构化数据集可以包括非结构化数据。

240:基于非结构化数据检索条件,进行相似度索引,从前序索引结果中确定非结构化数据索引结果,以生成检索结果。

应理解,文中所述的相似度索引可以为任何方式的相似度计算。例如,采用向量相似度计算。例如,采用聚类或分类的方式,基于前序索引结果,进行特征向量检索。例如,基于全部的前序索引结果进行特征向量检索。例如,基于部分的前序索引结果,进行特征向量检索。例如,基于上述的全部或部分的结构化数据集进行特征向量检索,然后基于前序索引结果,得到特征向量检索结果。例如,可以基于第一特征向量检索条件,进行向量相似度索引,得到特征向量初步索引结果。例如,基于前序结果生成第二特征向量检索条件,基于第二特征向量检索条件,对特征向量初步索引结果进行再次向量相似度索引,得到所述特征向量索引结果。还应理解,上述的各种索引方式仅仅是示例性的,本发明实施例对此不作限定。

由于通过计算开销较小的结构化字段索引得到前序索引结果,减少了索引范围,因此减小了后续的基于非结构化数据进行的相似度索引的计算开销,从而节省了计算资源。

应理解,ANN检索是对全局向量进行相似度计算并排序截取的近似过程。例如,大规模并行处理(MPP)分析型数据在处理ANN检索时底层如果没有专用的ANN索引,需要把所有向量数据抽取到计算层进行向量计算,然后再排序截取排序的一部分,这样使得计算开销非常大。本发明实施例的方案节省了计算资源。此外,本发明的方案实现了结构化查询,保持了与现有设备很好的兼容性。

在本发明的另一实现方式中,基于非结构化数据检索条件,进行相似度索引,从前序索引结果中确定非结构化数据索引结果,包括:基于特征向量检索条件,对前序索引结果进行向量相似度索引,得到第一向量相似度索引结果;基于第一向量相似度索引结果,确定特征向量索引结果。

例如,如图2B所示,在每个计算节点中,基于特征向量检索条件,对前序索引结果进行向量相似度索引,得到第一向量相似度索引结果。例如,响应特征向量检索条件,主服务节点向多个计算节点发送相同的检索条件,以便相应的查询引擎进行向量相似度索引。例如,响应特征向量检索条件,向不同的计算节点发送不同的特征向量检索条件,以便相应的查询引擎进行相应的向量相似度索引,从而提供了系统对计算资源配置的灵活性。例如,响应特征向量检索条件,向不同的计算节点发送相同的查询条件。例如,不同的计算节点的查询引擎生成不同的子查询。例如,不同的计算节点根据子查询进行处理,得到子查询的处理结果。例如,主服务节点将子查询的处理结果进行处理,得到向量相似度索引结果。如此,减小了主服务节点的计算量。由此,实现了从主服务节点到计算节点之间的功能的分离。

在本发明的另一实现方式中,基于非结构化数据检索条件,进行相似度索引,从前序索引结果中确定非结构化数据索引结果,包括:基于特征向量检索条件,进行向量相似度索引,得到第二向量相似度索引结果;采用前序索引结果,对第二向量相似度索引结果进行过滤,以得到特征向量索引结果。

例如,响应特征向量检索条件,得到第一前序索引结果和第二前序索引结果。例如,采用第一前序索引结果进行向量相似度索引,得到第二向量相似度初始索引结果。例如,采用第二前序索引结果,对第二向量相似度初始索引结果进行过滤,得到第二向量相似度索引结果。可选地,前序索引结果还包括第三前序索引结果。例如,可以对第一前序结果进行向量相似度索引,得到第一初始结果。例如,可以采用第二前序结果,对第一初始结果进行过滤,得到第二初始结果。例如,可以采用第三前序结果,进行向量相似度索引。换言之,可以对前序索引结果进行向量相似度索引处理和过滤处理的较低处理。对这两种处理的次数不做限定。应理解,可以采用任何方式进行上述的相似度索引,本发明实施例对此不作限定。

例如,采用图2C所示的节点进行处理,应理解,图2C所示的计算节点可以为分布式计算节点,也可以为单一计算节点。例如,还可以采用图2B或2D所示的计算节点来处理。

在本发明的另一实现方式中,基于结构化字段检索条件,进行结构化字段索引,得到前序索引结果,包括:确定原始相似度索引数据集;基于结构化字段检索条件,在原始相似度索引数据集中索引,得到前序索引结果,其中,所述方法还包括:基于原始相似度索引数据集,确定向量相似度索引的计算开销。

例如,可以采用查询引擎可以计算开销计算模块。应理解,计算开销计算模块也可以是独立的模块,本发明实施例对此不作限定。例如,计算开销计算模块用于计算上述的过滤处理的计算开销。例如,计算开销计算模块用于计算上述的向量相似度的计算开销。例如,计算开销计算模块用于计算上述的结构化字段检索的计算开销。例如,计算开销模块还可以对上述的过滤处理、结构化字段检错处理、向量相似度计算处理各自的计算开销进行比较。例如,基于上述的比较结果指示查询引擎进行处理。

例如,可以计算上述三种处理中的每种处理的计算开销。例如,可以计算上述的三种处理中的两种计算处理的计算开销和。例如,将该两种处理的计算开销和与另一种计算开销相比较。

在本发明的另一实现方式中,向量相似度索引包括第一向量相似度索引和第二向量相似度索引,其中,基于非结构化数据检索条件,进行相似度索引,从前序索引结果中确定非结构化数据索引结果,包括:确定第一向量相似度索引的计算开销大于第二向量相似度索引的计算开销;基于特征向量检索条件,进行第二向量相似度索引,从前序索引结果中确定特征向量索引结果。

在本发明的另一实现方式中,基于非结构化数据检索条件,进行相似度索引,从前序索引结果中确定非结构化数据索引结果,还包括:基于第一索引开销,确定第一向量相似度索引的计算开销,其中,第一索引开销指示在原始相似度索引数据集中索引得到前序索引结果的开销;基于第二索引开销和过滤处理开销,确定第二向量相似度索引的计算开销,其中,第二索引开销指示在前序索引结果中索引得到特征向量索引结果的开销,过滤处理开销为基于前序索引结果对第二向量相似度索引结果进行过滤的开销。

在本发明的另一实现方式中,基于非结构化数据检索条件,进行相似度索引,从前序索引结果中确定非结构化数据索引结果,还包括:基于第一索引开销,确定第二向量相似度索引的计算开销,其中,第一索引开销指示在原始相似度索引数据集中索引得到前序索引结果的开销;基于第二索引开销和过滤处理开销,确定第一向量相似度索引的计算开销,其中,第二索引开销指示在前序索引结果中索引得到特征向量索引结果的开销,过滤处理开销为基于前序索引结果对第二向量相似度索引结果进行过滤的开销。

例如,结构化字段索引和向量相似度索引可以为正向索引,也可以为倒排索引。例如,结构化字段索引为正向索引,向量相似度索引可以为倒排索引。例如,结构化字段索引可以为倒排索引,向量相似度索引可以为正向索引。例如,结构化字段索引分为第一结构化字段索引和第二结构化字段索引,第一结构化字段索引为正向索引,第二结构化字段索引为倒排索引。例如,向量相似度索引包括第一向量相似度索引和第二向量相似度索引。例如,第一向量相似度索引为正向索引。例如,第二向量相似度索引为倒排索引。

在本发明的另一实现方式中,结构化字段检索条件包括对第一结构化字段的第一检索条件和对第二结构化字段的特征向量检索条件,其中,基于结构化字段检索条件,进行结构化字段索引,得到前序索引结果,包括:基于第一检索条件,对第一结构化字段进行第一倒排索引,得到第一倒排索引结果;基于第二结构化字段检索条件,对第一倒排索引结果进行第二倒排索引,得到前序索引结果。

在本发明的另一实现方式中,该方法还包括:对非结构化数据索引结果进行行号索引,得到非结构化数据索引结果对应的至少一个对象;生成包括至少一个对象的检索结果。

图3为本发明的另一实施例的查询方法所在的网络架构的示意性框图。例如,根据本发明实施例的一个示例的网络架构可以包括客户端和服务端。例如,用户140所使用的用户设备150通过网络等与服务端连接。服务端可以包括WEB服务器、应用服务器、数据库服务器中的至少一者的服务器集群。服务端可以包括查询引擎110和计算节点。例如,计算节点可以为单一的服务器,也可以为服务器集群,例如,诸如云服务器的分布式服务器。图3示出根据本发明实施例的针对结构化数据和非结构化数据执行查询的逻辑框图。在一个实施例中,查询引擎110可以是可访问和处理关于不同类型的数据的查询的查询引擎。例如,如图3所示,查询引擎110可访问非结构化数据160。在本发明实施例中,查询引擎110可实施支持根据公共或公用查询规范语言(如SQL)的查询的接口,或者其他任意类型的格式化的查询。在本发明实施例中,查询引擎110还可以将以不同查询语言格式接收的查询翻译成另一种查询语言格式以供执行(例如,将SPL查询翻译成SQL查询)。

在本发明实施例中,查询引擎110可发送索引请求以对非结构化数据160执行查询。例如,在一个实施例中,可接收SQL查询,所述SQL查询指定针对非结构化数据160的另一个查询谓词。索引请求可生成具有结构化数据操作131和非结构化数据操作132的执行计划,以便执行这类SQL查询。在本发明实施例中,接收的其它查询可针对非结构化数据160,并且可确定适当的结构化数据操作131或非结构化数据操作131并将其包含在由索引请求生成的执行计划中。

在本发明实施例中,查询引擎110可实施结构化数据查询执行以执行结构化数据操作131。查询引擎110可还可以实施非结构化数据查询执行以执行非结构化数据操作132,从而应用非结构化数据操作132。

图4A为本发明的另一实施例的查询方法的示意性框图。图4A的查询方法,包括:

410:获取查询请求,查询请求中包括待查询对象。

420:响应查询请求,生成待查询对象的结构化字段检索条件和非结构化数据检索条件。

430:向服务端发送结构化字段检索条件和非结构化数据检索条件,以便服务端基于结构化字段检索条件,进行结构化字段索引,得到前序索引结果,并且基于非结构化数据检索条件,进行相似度索引,从前序索引结果中确定非结构化数据索引结果。

440:接收服务端返回的基于特征向量索引结果的查询结果。

由于通过计算开销较小的结构化字段索引得到前序索引结果,减少了索引范围,因此减小了后续的基于非结构化数据进行的相似度索引的计算开销,从而节省了计算资源。因此,相应地对前端而言,提高了查询效率。

例如,客户端发送的查询条件包括混合查询意图。例如,上述查询条件为在于查找20180910这一天101号城市里出现的和查询向量最接近的10条向量记录。例如,查询向量为目标图片。例如,目标图片中的目标对象被标注为蓝色。例如,上述查询条件还可以包括其他结构化数据。

应理解,客户端可以包括相应的方法或响应的模块。例如,客户端中包括的诸如ann_distance的模块,可以根据客户端的查询向量和记录的向量计算出结果。例如,当前端节点收到查询后,会把自定义表查询进行拆解改写。例如,前端节点可以并把子查询下发给一个或多个计算节点。例如,所述一个或多个计算节点收到的查询可以是带有三个过滤条件的查询。例如,可以并行或串行执行上述的三个过滤条件。例如,可以串行地进行查询。例如,先进行结构化查询,再进行ANN查询。例如,也可以先进行ANN查询,再进行结构化查询,再进行ANN查询。例如,在本示例中,计算节点并行查询Date字段的倒排索引和CityId字段的倒排索引。例如,前两个倒排索引的结果在倒排索引收集器(Revert Search Collector)进行归并求交集。例如,Revert Search Collector把倒排索引的中间结果传输给ANN索引收集器(Ann Search Collector)。例如,Ann Search Collector在前序结果集的基础上利用索引进行ANN检索。例如,Ann Search Collector的ANN检索过程分为供给器(Feeder)和过滤器(Filter)两种方式。例如,Feeder以前序结果为驱动进行计算。例如,Filter以索引为驱动进行计算并使用前序结果进行过滤。Ann Search Collector采用计算开销计算模块来计算较优检索方式。计算开销计算模块可以实现为Cost Based Optimizer(计算代价优化器)。例如,较优检索方式可以为计算开销最小的检索方式。例如,可以进行结构化检索和向量相似度检索的混合索引检索(Mixed Index Search)。例如,混合索引检索可以包括上述的交替的检索方式。例如,完成检索处理后,将检索结果行号传给细节管理器(DetailManager)。例如,上述的细节管理器可以具有行号索引的功能。例如,获取结果行的明细数据。例如,诸如发起查询的客户端的前端节点可以收集全部或部分计算节点的查询结果。例如,诸如客户端的前端节点能够根据ann_distance对所有记录进行重排截取。应理解,上述流程描述仅仅是本发明实施例的混合检索流程的一个示例。例如,本发明实施例可以只针对单类条件的查询。其相应的操作和流程如上所述,例如,计算节点会跳过部分检索流程,过程不赘述。

图4B为本发明的另一实施例的查询方法的示意性框图。应理解,图4B的查询方法可以适用于图3所示的网络架构,也可以采用其他的网络架构。本发明实施例对此不作限定。图4B的查询方法,包括:

450:获取展示图片查询请求,展示图片查询请求中包括待查询图片。

460:响应展示图片查询请求,生成待查询图片的结构化字段检索条件和非结构化数据检索条件。

470:向服务端发送结构化字段检索条件和非结构化数据检索条件,以便服务端基于结构化字段检索条件,在展示图片数据集中进行结构化字段索引,得到前序索引结果,并且基于非结构化数据检索条件,进行相似度索引,从前序索引结果中确定非结构化数据索引结果。

480:接收服务端返回的基于特征向量索引结果的查询结果,查询结果包括展示图片数据集中的满足展示图片查询请求的至少一个展示图片。

由于通过计算开销较小的结构化字段索引得到前序索引结果,减少了索引范围,因此减小了后续的基于非结构化数据进行的相似度索引的计算开销,从而节省了计算资源。相应地,对前端节点而言,提供了图片查询效率。

图5为本发明的另一实施例的检索装置的示意性框图。图5的检索装置包括:

获取模块510,获取检索条件,检索条件包括基于同一对象的结构化字段检索条件和非结构化数据检索条件,

结构化字段索引模块520,基于结构化字段检索条件,进行结构化字段索引,得到前序索引结果;

相似度索引模块530,基于非结构化数据检索条件,进行相似度索引,从前序索引结果中确定非结构化数据索引结果,以生成检索结果。

由于通过计算开销较小的结构化字段索引得到前序索引结果,减少了索引范围,因此减小了后续的基于非结构化数据进行的相似度索引的计算开销,从而节省了计算资源。

本实施例的方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:服务器、移动终端(如手机、PAD等)和PC机等。

在本发明的另一实现方式中,相似度索引模块具体用于:基于特征向量检索条件,对前序索引结果进行向量相似度索引,得到第一向量相似度索引结果;基于第一向量相似度索引结果,确定特征向量索引结果。

在本发明的另一实现方式中,相似度索引模块具体用于:基于特征向量检索条件,进行向量相似度索引,得到第二向量相似度索引结果;采用前序索引结果,对第二向量相似度索引结果进行过滤,以得到特征向量索引结果。

在本发明的另一实现方式中,结构化字段索引模块具体用于:确定原始相似度索引数据集;基于结构化字段检索条件,在原始相似度索引数据集中索引,得到前序索引结果,其中,所述装置还包括计算开销确定模块:基于原始相似度索引数据集,确定向量相似度索引的计算开销。

在本发明的另一实现方式中,向量相似度索引包括第一向量相似度索引和第二向量相似度索引,其中,相似度索引模块具体用于:确定第一向量相似度索引的计算开销大于第二向量相似度索引的计算开销;基于特征向量检索条件,进行第二向量相似度索引,从前序索引结果中确定特征向量索引结果。

在本发明的另一实现方式中,相似度索引模块还用于:基于第一索引开销,确定第一向量相似度索引的计算开销,其中,第一索引开销指示在原始相似度索引数据集中索引得到前序索引结果的开销;基于第二索引开销和过滤处理开销,确定第二向量相似度索引的计算开销,其中,第二索引开销指示在前序索引结果中索引得到特征向量索引结果的开销,过滤处理开销为基于前序索引结果对第二向量相似度索引结果进行过滤的开销。

在本发明的另一实现方式中,相似度索引模块还用于:基于第一索引开销,确定第二向量相似度索引的计算开销,其中,第一索引开销指示在原始相似度索引数据集中索引得到前序索引结果的开销;基于第二索引开销和过滤处理开销,确定第一向量相似度索引的计算开销,其中,第二索引开销指示在前序索引结果中索引得到特征向量索引结果的开销,过滤处理开销为基于前序索引结果对第二向量相似度索引结果进行过滤的开销。

在本发明的另一实现方式中,结构化字段检索条件包括对第一结构化字段的第一检索条件和对第二结构化字段的特征向量检索条件,其中,结构化字段索引模块具体用于:基于第一检索条件,对第一结构化字段进行第一倒排索引,得到第一倒排索引结果;基于第二结构化字段检索条件,对第一倒排索引结果进行第二倒排索引,得到前序索引结果。

在本发明的另一实现方式中,所述装置还包括:检索结果生成模块:对非结构化数据索引结果进行行号索引,得到非结构化数据索引结果对应的至少一个对象;生成包括至少一个对象的检索结果。

本实施例的装置用于实现前述多个方法实施例中相应的方法,并具有相应的方法实施例的有益效果,在此不再赘述。此外,本实施例的装置中的各个模块的功能实现均可参照前述方法实施例中的相应部分的描述,在此亦不再赘述。

图6A为本发明的另一实施例的查询装置的示意性框图;图6A的查询装置,包括:

获取模块610,获取查询请求,查询请求中包括待查询对象;

检索条件生成模块620,响应查询请求,生成待查询对象的结构化字段检索条件和非结构化数据检索条件;

发送模块630,向服务端发送结构化字段检索条件和非结构化数据检索条件,以便服务端基于结构化字段检索条件,进行结构化字段索引,得到前序索引结果,并且基于非结构化数据检索条件,进行相似度索引,从前序索引结果中确定非结构化数据索引结果;

接收模块640,接收服务端返回的基于特征向量索引结果的查询结果。

由于通过计算开销较小的结构化字段索引得到前序索引结果,减少了索引范围,因此减小了后续的基于非结构化数据进行的相似度索引的计算开销,从而节省了计算资源。相应地,对前端节点而言,提供了查询效率。

本实施例的方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:服务器、移动终端(如手机、PAD等)和PC机等。

本实施例的装置用于实现前述多个方法实施例中相应的方法,并具有相应的方法实施例的有益效果,在此不再赘述。此外,本实施例的装置中的各个模块的功能实现均可参照前述方法实施例中的相应部分的描述,在此亦不再赘述。

图6B为本发明的另一实施例的查询装置的示意性框图。图6B的查询装置,包括:

获取模块650,获取展示图片查询请求,展示图片查询请求中包括待查询图片;

检索条件生成模块660,响应展示图片查询请求,生成待查询图片的结构化字段检索条件和非结构化数据检索条件;

发送模块670,向服务端发送结构化字段检索条件和非结构化数据检索条件,以便服务端基于结构化字段检索条件,在展示图片数据集中进行结构化字段索引,得到前序索引结果,并且基于非结构化数据检索条件,进行相似度索引,从前序索引结果中确定非结构化数据索引结果;

接收模块680,接收服务端返回的基于特征向量索引结果的查询结果,查询结果包括展示图片数据集中的满足展示图片查询请求的至少一个展示图片。

应理解,所述对象可以经由处理成结构化数据、半结构化数据或非结构化数据。例如,所述对象可以为诸如图片、声音或视频等对象。例如,所述非结构化数据可以被标注而具有结构化数据。例如,非结构化数据可以为未经标注但可以经过识别处理而确定其结构化数据。结构化字段检索条件为针对所述对象的结构化数据的检索条件。所述对象可以为结构化数据可以为例如所述对象的属性信息。例如,结构化数据可以包括图片的大小、图片的颜色、图片的采集时间、图片的修改时间、视频的大小、视频的分辨率、视频的编码方式、视频的作者信息。例如,结构化数据还可以包括与客户端有关的信息,例如,客户端发起的查询的时间、客户端发起查询的地点、客户端中用户行为记录等。例如,结构化数据还可以包括从客户端输入的信息,例如,从客户端输入的时间、地点、特定商品的价格、特定商品的款式、特定商品的销量、特定商品的品牌等。例如,特征向量检索条件为一种非结构化数据的检索条件。例如,所述检索条件可以为客户端基于查询生成的子查询。例如,结构化字段检索条件可以为针对所述结构化数据具有的部分或全部特征字段,例如,关键词或关键字。

由于通过计算开销较小的结构化字段索引得到前序索引结果,减少了索引范围,因此减小了后续的基于非结构化数据进行的相似度索引的计算开销,从而节省了计算资源。相应地,对于前端节点而言,提高了图片查询效率。

本实施例的方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:服务器、移动终端(如手机、PAD等)和PC机等。

本实施例的装置用于实现前述多个方法实施例中相应的方法,并具有相应的方法实施例的有益效果,在此不再赘述。此外,本实施例的装置中的各个模块的功能实现均可参照前述方法实施例中的相应部分的描述,在此亦不再赘述。

图6C为本发明的另一实施例的查询装置的示意性框图。图6C的查询系统,包括:

前端节点6100和至少一个计算节点6200,

前端节点6100用于:获取查询请求,查询请求中包括待查询对象;响应查询请求,生成待查询对象的结构化字段检索条件和非结构化数据检索条件;向至少一个计算节点发送结构化字段检索条件和非结构化数据检索条件;接收至少一个计算节点发送的基于非结构化数据索引结果的查询结果,

至少一个计算节点6200用于:基于结构化字段检索条件,进行结构化字段索引,得到前序索引结果;基于非结构化数据检索条件,进行相似度索引,从前序索引结果中确定非结构化数据索引结果;基于非结构化数据索引结果,生成查询结果。

由于通过计算开销较小的结构化字段索引得到前序索引结果,减少了索引范围,因此减小了后续的基于非结构化数据进行的相似度索引的计算开销,从而节省了计算资源。

应理解,在每个计算节点中,可以基于特征向量检索条件,对前序索引结果进行向量相似度索引,得到向量相似度索引结果。例如,响应特征向量检索条件,经由主计算节点或直接地向至少一个计算节点(例如,多个计算节点)发送相同的检索条件,以便相应的查询引擎进行向量相似度索引。例如,响应特征向量检索条件,向不同的计算节点发送不同的特征向量检索条件,以便相应的查询引擎进行相应的向量相似度索引,从而提供了系统对计算资源配置的灵活性。例如,响应特征向量检索条件,向不同的计算节点发送相同或不同的查询条件。在一个示例中,不同的计算节点的查询引擎生成不同的子查询。例如,不同的计算节点根据子查询进行处理,得到子查询的处理结果。在另一示例中,主服务节点将子查询的处理结果进行处理,得到向量相似度索引结果。如此,减小了主服务节点的计算量。由此,实现了从主服务节点到计算节点之间的功能的分离。

另外,图2B-图2D中的相应描述的各个实施例也同样适用于该图6C的示例。

在本发明的另一实现方式中,至少一个计算节点为第一计算节点和第二计算节点,非结构化数据检索条件为特征向量检索条件,前端节点具体用于:响应查询请求,生成待查询对象的结构化字段检索条件和特征向量检索条件;向第一服务节点发送结构化字段检索条件,并且向第二服务节点发送特征向量检索条件,第一服务节点具体用于:基于结构化字段检索条件,进行结构化字段索引,得到前序索引结果;向第二服务节点发送前序索引结果,第二服务节点具体用于:基于特征向量检索条件,进行向量相似度索引,从前序索引结果中确定非结构化数据索引结果;基于非结构化数据索引结果,生成查询结果;向前端节点返回查询结果。

图7为本发明的另一实施例中电子设备的结构示意图;该电子设备可以包括:

一个或多个处理器701;

计算机可读介质702,可以配置为存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述实施例所述的检索方法或上述实施例所述的查询方法。

图8为本发明的另一实施例的电子设备的硬件结构;如图8所示,该电子设备的硬件结构可以包括:处理器801,通信接口802,计算机可读介质803和通信总线804。

其中处理器801、通信接口802、计算机可读介质803通过通信总线804完成相互间的通信。

可选地,通信接口802可以为通信模块的接口。

其中,处理器801具体可以配置为:获取检索条件,所述检索条件包括基于同一对象的结构化字段检索条件和非结构化数据检索条件;基于所述结构化字段检索条件,进行结构化字段索引,得到前序索引结果;基于非结构化数据检索条件,进行相似度索引,从前序索引结果中确定非结构化数据索引结果,或者,

获取查询请求,所述查询请求中包括待查询对象;响应所述查询请求,生成所述待查询对象的结构化字段检索条件和非结构化数据检索条件;向服务端发送结构化字段检索条件和非结构化数据检索条件,以便所述服务端基于所述结构化字段检索条件,进行结构化字段索引,得到前序索引结果,并且基于非结构化数据检索条件,进行相似度索引,从前序索引结果中确定非结构化数据索引结果;接收所述服务端返回的基于所述非结构化数据索引结果的查询结果。

处理器801可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

计算机可读介质803可以是,但不限于,随机存取存储介质(Random AccessMemory,RAM),只读存储介质(Read Only Memory,ROM),可编程只读存储介质(Programmable Read-Only Memory,PROM),可擦除只读存储介质(Erasable ProgrammableRead-Only Memory,EPROM),电可擦除只读存储介质(Electric Erasable ProgrammableRead-Only Memory,EEPROM)等。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含配置为执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被中央处理单元(CPU)执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读介质例如可以但不限于是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储介质(RAM)、只读存储介质(ROM)、可擦式可编程只读存储介质(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储介质(CD-ROM)、光存储介质件、磁存储介质件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输配置为由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写配置为执行本申请的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在计算机上执行、部分地在计算机上执行、作为一个独立的软件包执行、部分在计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络:包括局域网(LAN)或广域网(WAN)—连接到计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个配置为实现规定的逻辑功能的可执行指令。上述具体实施例中有特定先后关系,但这些先后关系只是示例性的,在具体实现的时候,这些步骤可能会更少、更多或执行顺序有调整。即在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。这些模块的名称在某种情况下并不构成对该模块本身的限定。

作为另一方面,本申请还提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述各实施例所描述的方法。

作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:获取检索条件,所述检索条件包括基于同一对象的结构化字段检索条件和非结构化数据检索条件;基于所述结构化字段检索条件,进行结构化字段索引,得到前序索引结果;基于非结构化数据检索条件,进行相似度索引,从前序索引结果中确定非结构化数据索引结果,或者,

获取查询请求,所述查询请求中包括待查询对象;响应所述查询请求,生成所述待查询对象的结构化字段检索条件和非结构化数据检索条件;向服务端发送结构化字段检索条件和非结构化数据检索条件,以便所述服务端基于所述结构化字段检索条件,进行结构化字段索引,得到前序索引结果,并且基于非结构化数据检索条件,进行相似度索引,从前序索引结果中确定非结构化数据索引结果;接收所述服务端返回的基于所述非结构化数据索引结果的查询结果。

在本公开的各种实施方式中所使用的表述“第一”、“第二”、“所述第一”或“所述第二”可修饰各种部件而与顺序和/或重要性无关,但是这些表述不限制相应部件。以上表述仅配置为将元件与其它元件区分开的目的。例如,第一用户设备和第二用户设备表示不同的用户设备,虽然两者均是用户设备。例如,在不背离本公开的范围的前提下,第一元件可称作第二元件,类似地,第二元件可称作第一元件。

当一个元件(例如,第一元件)称为与另一元件(例如,第二元件)“(可操作地或可通信地)联接”或“(可操作地或可通信地)联接至”另一元件(例如,第二元件)或“连接至”另一元件(例如,第二元件)时,应理解为该一个元件直接连接至该另一元件或者该一个元件经由又一个元件(例如,第三元件)间接连接至该另一个元件。相反,可理解,当元件(例如,第一元件)称为“直接连接”或“直接联接”至另一元件(第二元件)时,则没有元件(例如,第三元件)插入在这两者之间。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号