Vespa

Vespa

开源的大数据与 AI 检索及推荐引擎

核心功能

Vespa 是开源的搜索与推荐引擎,将向量存为 tensor 字段并配合 HNSW 索引,用 YQL 的 nearestNeighbor 做近邻检索,可在同一条查询里融合向量与结构化条件,适合大规模语义搜索与推荐。

功能亮点

张量化

向量以 tensor 字段建模,可与业务特征同场打分

近邻算子

YQL nearestNeighbor 指定目标向量与候选数

精确回退

查询加 approximate:false 即退回精确近邻检索

混合排序

向量相似度可与业务布尔条件写进同一条 YQL 做混合排序

适用场景

• 大规模语义搜索,向量与文本、过滤条件同场排序。
• 推荐系统用向量近邻做相似物品召回。
• 多模态检索,将图像或文本嵌入统一为 tensor 检索。

安装配置

bash
安装 CLI 并启动本地实例(建议 4GB 内存):
brew install vespa-cli
vespa config set target local
docker run --detach --name vespa --hostname vespa-container --publish 8080:8080 --publish 19071:19071 vespaengine/vespa

克隆示例并部署:
vespa clone album-recommendation myapp
cd myapp
vespa deploy --wait 300 ./app

使用方法

bash
schema 字段定义(HNSW + 余弦):
field text_embedding type tensor<float>(x[384]) {
    indexing: summary | attribute
    attribute {
        distance-metric: prenormalized-angular
    }
    index {
        hnsw {
            max-links-per-node: 24
            neighbors-to-explore-at-insert: 200
        }
    }
}

查询(YQL nearestNeighbor):
vespa query 'select * from docs where {targetHits:3}nearestNeighbor(d_vector,q_vector)' ranking=rank_docs 'input.query(q_vector)'='[1,2,3]'

精确检索(关闭近似):
vespa query 'select * from docs where {targetHits:3}nearestNeighbor(d_vector,q_vector)' ranking=rank_docs 'input.query(q_vector)'='[1,2,3]' 'approximate:false'

关键指标

尚未核验对标产品,此处只列本工具自身指标,不做对比结论。

指标Vespa
价格免费
开源
上手难度专家

相关工具

优点

  • 向量与结构化数据在同一引擎统一检索与排序。
  • HNSW 近邻可与布尔条件、业务打分融合。
  • 开源(Apache 2.0),可自托管大规模集群。
  • 支持近似与精确(approximate:false)两种检索。

缺点

  • tensor 常驻内存,向量规模受节点内存上限约束。
  • HNSW 的 max-links-per-node 调大后查询吞吐会下降。
  • 带过滤的近邻未必满足子线性,需评估召回与性能。
  • 本地容器部署建议 4GB 内存,资源门槛较高。