核心功能
OpenSearch 是开源搜索与分析引擎,其 k-NN 插件提供向量近邻检索:以 knn_vector 字段存储嵌入,支持 HNSW、IVF 与多种引擎,可与全文检索混合,适合语义搜索与 RAG。
功能亮点
多引擎
同一向量字段可指定 Faiss、Lucene 等引擎实现
混合检索
向量 k-NN 可与 keyword、filter 查询组合
降内存
on_disk 模式与 pq/sq 编码可显著降低内存
易起步
Docker 一键拉起,_search 中加 knn 子句即可
适用场景
• 在日志或文档检索中叠加向量,实现语义与关键词混合搜索。
• 用 knn_vector 存储商品嵌入,支撑以图搜图。
• 与 RAG 结合,提供私有知识库的自然语言检索。
安装配置
bash
Docker 运行(单节点,关闭安全插件便于本地测试): docker pull opensearchproject/opensearch:latest docker run -it -p 9200:9200 -p 9600:9600 -e "discovery.type=single-node" -e "DISABLE_SECURITY_PLUGIN=true" opensearchproject/opensearch:latest 健康检查: curl http://localhost:9200 或 docker compose 启动: docker compose up -d
使用方法
bash
创建索引并开启 knn:
PUT /test-index
{
"settings": {
"index": {
"knn": true
}
},
"mappings": {
"properties": {
"embedding": {
"type": "knn_vector",
"dimension": 3,
"space_type": "l2"
}
}
}
}
向量近邻查询:
GET /my-vector-index/_search
{
"size": 3,
"query": {
"knn": {
"embedding": {
"vector": [1, 2, 3],
"k": 3
}
}
}
}关键指标
尚未核验对标产品,此处只列本工具自身指标,不做对比结论。
指标OpenSearch
价格免费
开源是
上手难度进阶
相关工具
优点
- 开源(Apache 2.0),可自托管且与 Elasticsearch API 兼容。
- 向量检索可与全文、聚合查询在同一引擎内混合。
- HNSW/Faiss/Lucene 多引擎,可按规模与精度选型。
- 支持 on_disk 与量化编码,降低大规模内存占用。
缺点
- NMSLIB 引擎已弃用,新建索引应使用 Faiss 或 Lucene。
- IVF 索引需先执行 Train API 训练中心后再写入。
- 向量过滤仅 Faiss 与 Lucene 引擎支持,NMSLIB 不行。
- Lucene 引擎建议向量数低于 1000 万,超量需评估。