背景信息
随着非结构化数据(如图像、视频和音频)的爆炸性增长,非结构化数据分析在现实世界的丰富应用脉络中的应用愈发广泛存在。许多数据库系统开始纳入非结构化数据分析来满足这些需求。然而,在大多数系统中,对非结构化数据和结构化数据的查询往往被视为不相干的任务,其中混合查询(即涉及两种数据类型混合查询)还没有得到完全支持。
为了促进对非结构化数据的分析,通常会利用基于内容的检索系统。在这些系统中,每个非结构化数据首先被转换为高维特征向量,然后对这些向量进行后续检索。尽管基于内容的检索系统支持非结构化数据分析,但在许多情况下,由于各种原因,非结构化数据和结构化数据都需要混合查询检索。首先,对非结构化数据的查询可能不足以描述所需的对象,在这种情况下,混合查询有助于提高其表现力。其次,最先进的特征向量提取算法的准确性远远不能令人满意,特别是在大型数据集上,混合查询有助于提高准确性。
从非结构化数据中提取的特征向量通常具有极高的维度。在许多应用场景中,如在线购物、工单质检等,由非结构化数据提取出的特征向量可以达到500维以上。此外,这些高维向量是实时生成的。对这种高维向量的实时管理对现有的数据库和向量搜索引擎来说是个负担。一方面,支持相似性搜索的在线数据库系统(如PostgreSQL和MySQL)只适用于多达几十维的向量。另一方面,向量相似性搜索引擎(如Faiss和Vearch)以离线方式来处理和索引高维向量,这无法应对实时更新请求。业内缺乏一种既能满足实时管理的流处理场景和批量处理的批处理场景的混合检索系统。
技术方案
本方案实现非结构化数据与结构化数据的流批一体化混合查询。通过针对不同检索场景(流处理和批处理)分别调用不同的近似最近邻搜索索引,优化了检索效率和资源利用。
该方法包括以下步骤:
确定输入数据的检索场景,包括流处理和批处理。
在流处理场景中,使用基于图的向量索引进行检索。
在批处理场景中,使用量化向量索引进行检索。
对检索结果进行排名,选择最接近的向量数据。
处理非结构化数据和结构化数据的混合查询。
该系统支持异构计算,包含计算检索模块和存储模块,能够在检索后记录日志并同步多个子向量数据库,确保数据一致性。本方案显著提升了检索效率,兼顾了实时性和资源效率,满足了复杂数据查询需求,是大数据和人工智能领域的重要创新。




