更新时间:2025-07-29 GMT+08:00
向量检索特性介绍
在人工智能时代,图像、视频、音频、文本语料等非结构化数据激增,传统的关键词搜索难以有效捕捉这些数据深层的语义或视觉特征,为了解决这个问题,CSS服务提供了向量检索功能。基于Elasticsearch的向量检索功能,面向图像、视频、语料等非结构化数据的特征向量检索场景,提供高性能、高精度的最近邻或近似近邻检索服务。典型应用场景包括:以图搜图/视频、相似商品推荐、语义文本检索、跨模态检索(如用文本搜图片)等。
方案优势
- 高效可靠:内置高性能CSS向量检索引擎,提供优秀的搜索吞吐量和低延迟。依托OpenSearch原生分布式架构,具备多副本、快照备份、权限控制等企业级可靠性保障。
- 灵活适配:支持多种索引算法及相似度度量方式,如暴力检索、图索引(HNSW)、乘积量化、IVF-HNSW等,并兼容多种相似度计算方式,包括欧式、内积、余弦、汉明等。
- 生态兼容:兼容开源OpenSearch语法和API。无缝集成OpenSearch生态工具,如Cerebro、Kibana、Logstash等。支持Python、Java、Go、C++等主流客户端语言,开发集成简单。
原理概述
CSS向量检索的原理基于近似最近邻(ANN) 搜索,旨在高效解决K近邻(KNN)问题(即找出与查询向量最相似的K个结果),避免计算量巨大的精确KNN。其关键在于优化检索效率与精度:
- 减少候选集:传统文本检索通过倒排索引过滤无关文档,而向量检索通过构建索引结构(如HNSW图或IVF-PQ)快速定位潜在相关向量,避免全量遍历。例如,HNSW索引通过多层图结构实现快速跳转,显著缩短搜索路径。
- 降低计算复杂度:漏斗模型先对向量进行粗粒度量化(如IVF-PQ),快速筛选候选集;再对候选集进行精粒度计算(如余弦相似度),平衡性能与精度。量化压缩是通过乘积量化(PQ)将向量编码为低维码本,减少存储和计算开销。
- 性能与精度平衡:支持动态调整索引参数(如HNSW的层级数、IVF的聚类数),在召回率与响应时间之间灵活权衡。
使用流程
- 数据准备: 使用AI模型(如CNN、Transformer)处理您的非结构化数据(图片、视频、文本等),提取特征向量。
- 索引创建: 在OpenSearch集群中创建向量索引,定义包含向量字段的Mapping(指定向量维度、索引算法、相似度度量方式等)。将特征向量数据(通常连同原始数据或元数据)索引到OpenSearch中。
- 数据写入:将特征向量数据写入OpenSearch集群。
- 向量查询: 使用标准的OpenSearch查询DSL(如KNN查询),传入您需要搜索的目标特征向量(由相同模型提取),指定期望返回的最近邻数量K。
- 获取结果: CSS向量检索引擎高效执行ANN搜索,返回与查询向量最相似的K个结果及其相似度分数,您的应用即可处理这些结果(如展示相似图片、推荐相关商品)。
约束限制
OpenSearch集群仅1.3.6版本自带CSS向量搜索引擎。
相关文档
- CSS服务的OpenSearch集群支持开源向量检索,操作指导请参见k-NN query。
- 了解如何快速上手CSS向量检索功能,请参见使用Elasticsearch实现向量检索。
- 了解CSS向量数据库的性能比较,请参见Elasticsearch向量检索的性能测试和比较。
父主题: 配置OpenSearch集群向量检索