核心功能
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 内存,资源门槛较高。