一种基于Flink的流式向量搜索方法及装置、系统
摘要文本
本发明公开了一种基于Flink的流式向量搜索方法及装置、系统,利用流式处理引擎的状态管理机制实现了大规模向量数据的实时索引和查询。将插入和查询两种不同类型的输入均作为向量流输入到Flink中进行处理,再将两个流合并为一个流,实现了两个流在同一个Flink子任务中进行处理,减少了两个流交互所需的网络传输开销;其次,将向量索引数据存储于专门的状态区中,而其插入和查询是在状态区外的JVM内存中执行,同时保证了向量索引数据在状态区中的持久化存储和在JVM内存中的高速插入和查询;最后,通过偏离时间域值,实现了精准的延时容忍度控制,从而可以满足不同场景下的不同延时需求。
申请人信息
- 申请人:浙江大学
- 申请人地址:310058 浙江省杭州市西湖区余杭塘路866号
- 发明人: 浙江大学
专利详细信息
| 项目 | 内容 |
|---|---|
| 专利名称 | 一种基于Flink的流式向量搜索方法及装置、系统 |
| 专利类型 | 发明申请 |
| 申请号 | CN202410130913.9 |
| 申请日 | 2024/1/31 |
| 公告号 | CN117689451A |
| 公开日 | 2024/3/12 |
| IPC主分类号 | G06Q30/0601 |
| 权利人 | 浙江大学 |
| 发明人 | 龚盛豪; 高云君; 房子荃; 孙浩波; 陈璐 |
| 地址 | 浙江省杭州市西湖区余杭塘路866号 |
专利主权项内容
1.一种基于Flink的流式向量搜索方法,其特征在于,包括:从实时商品推荐系统的上游流式处理引擎或消息队列中采集实时流入的商品表征向量,包括插入商品向量流和查询商品向量流,其中插入商品向量流表示新增的商品,查询商品向量流表示实时的用户访问,每个流均由无限产生的三元组构成,每个三元组由唯一标识符、时间戳和固定维度的向量组成;将所述插入商品向量流和查询商品向量流合并为一个商品向量流,由无限产生的四元组构成,一个四元组中包括一个对应的三元组和用于表示向量类型的标识;将所述商品向量流,根据向量的邻近性,利用局部敏感哈希方法构建分区索引,使得所述商品向量流中的向量分别进入对应分区中;在每个独立分区中,通过Flink状态,构建向量搜索索引,将每个分区的具有插入标志的向量按顺序插入到向量搜索索引当中;在每个独立分区中,从Flink状态中取出向量搜索索引,对当前分区中每个具有搜索标志的向量按顺序进行索引查询,得到当前分区的搜索结果;对于所有的搜索结果,根据每个搜索结果对应的四元组的唯一标识符进行聚合,利用优先队列保留预定数量的查询结果,更新当前时间戳为查询结束时间戳;将聚合后的搜索结果组合成搜索结果流,流入商品推荐系统的下游流式处理引擎或消息队列。