
# 对比CSS向量引擎和OpenSearch开源向量引擎
为应对AI搜索系统对海量高维数据检索的需求，CSS服务提供两种向量检索引擎方案：一是集成自主研发能力的CSS向量引擎，二是兼容OpenSearch社区标准的OpenSearch开源向量引擎。本文档将从功能特性、技术原理、操作语法等维度系统对比两种引擎，助力您基于业务场景做出合适的技术选型。
#### 功能介绍
表1功能特性介绍 
|    对比维度     |                                                                                                                                                                 CSS向量引擎                                                                                                                                                                  |                                       OpenSearch开源向量引擎                                       |
|---|---|---|
| **定位**      | CSS服务自主研发的向量检索引擎，基于Elasticsearch/OpenSearch内核深度定制，旨在提供高性能、高稳定性的企业级向量检索能力。                                                                                                                                                                                                                                                                | OpenSearch社区提供的开源向量检索能力，由k-NN Plugin驱动，依赖Faiss、NMSLib、Lucene等开源库实现，完全遵循OpenSearch的开源语法与生态标准。 |
| **使用语法**    | 提供专有索引语法和查询语法。                                                                                                                                                                                                                                                                                                                           | 遵循开源OpenSearch KNN（K-Nearest Neighbors）或ANN（Approximate Nearest Neighbor）语法。推荐ANN语法。         |
| **适用场景**    | 追求在CSS服务上的高性能、稳定性及开箱即用体验。                                                                                                                                                                                                                                                                                                                | 需要和社区保持高度兼容性的场景。                                                                             |
| **支持的集群版本** | - Elasticsearch：7.6.2、7.10.2  - OpenSearch：1.3.6、2.19.0、3.4.0（镜像版本不低于3.4.0_26.6.0_xxx）   | 所有OpenSearch版本                                                                               |
| **相关文档**    | [使用CSS向量引擎](https://support.huaweicloud.com/usermanual-css/css_01_0118.html)                                                                                                                                                                                                                                                             | [Vector search](https://docs.opensearch.org/latest/vector-search/)                           |
   
#### 两者相似之处
- 算法支持：均支持HNSW、IVF等向量索引算法，以及PQ、SQ等量化压缩算法。
- 查询支持：均支持向量检索、前置过滤检索以及混合检索。
- 性能要求：两者均使用C++语言实现核心计算逻辑，且均需高内存配置以发挥性能优势。
 
#### 核心能力差异
表2核心能力对比 
|   对比维度   |           CSS向量引擎           |             OpenSearch开源向量引擎             |
|---|---|---|
| **集成度**  | 深度集成CSS服务，享受服务整体SLA保障和运维支持。 | 作为OpenSearch的一个插件（k-NN Plugin）运行，依赖社区迭代。 |
| **易用性**  | 需学习专有API，与开源语法不直接兼容。        | 使用开源OpenSearch ANN/KNN语法。                |
| **灵活性**  | 算法优化策略由CSS服务提供，调优配置选项相对集中。  | 可自由组合使用Faiss、NMSLib等开源库，参数调优粒度细。         |
| **性能优化** | 支持专有索引内存管理，调优相对简单。          | 依赖Faiss/NMSLib参数及OpenSearch配置调优。         |
   
#### 操作语法差异
表3关键操作语法对比 
|   对比维度   |                                                                                                                                                                                CSS向量引擎                                                                                                                                                                                |                                                                                                                                                                                                    OpenSearch开源向量引擎                                                                                                                                                                                                     |
|---|---|---|
| **索引创建** | 创建自研向量索引，依赖关键参数index.vector、type。 示例： ``` PUT /my_index { "settings": { "index": { "vector": true } }, "mappings": { "properties": { "image_vector": { "type": "vector", "dimension": 2, "indexing": true, "metric": "euclidean" }, "price":{"type": "float"} } } } ``` | 创建ANN向量索引，依赖关键参数index.knn、type。 示例（适用OpenSearch 2.x及以上版本）： ``` PUT /my_index { "settings": { "index": { "knn": true } }, "mappings": { "properties": { "image_vector": { "type": "knn_vector", "dimension": 2, "method": { "name": "hnsw", "space_type": "l2", "engine": "faiss"} }, "price":{"type": "float"} } } } ``` |
| **查询语法** | 执行向量检索，依赖关键参数query.vector。 示例： ``` GET /my_index/_search { "query": { "vector": { "image_vector": { "vector": [1.0,2.0], "topk": 3, "filter": {"range": {"price": {"lte": 300}}} } } } } ```                                                                            | 执行向量检索，依赖关键参数query.knn。 示例（适用OpenSearch 2.x及以上版本）： ``` GET /my_index/_search { "query": { "knn": { "image_vector": { "vector": [1.0, 2.0], "k": 3, "filter": {"range":{"price":{"lte": 300 }}} } } } } ```                                                                                                               |
   
#### 相关文档
- 快速上手CSS向量引擎：[使用Elasticsearch实现向量检索](https://support.huaweicloud.com/qs-css/css_08_0002.html)
- 快速上手OpenSearch开源向量引擎：[使用OpenSearch开源向量引擎实现向量检索](https://support.huaweicloud.com/qs-css/css_08_0006.html)
- CSS向量数据库基于Dify和DeepSeek构建智能问答助手：[基于Dify集成CSS Elasticsearch向量数据库与DeepSeek构建智能问答助手](https://support.huaweicloud.com/bestpractice-css/css_07_0070.html)
- OpenSearch开源向量数据库基于Dify和DeepSeek构建智能问答助手：[基于Dify集成CSS OpenSearch开源向量数据库与DeepSeek构建智能问答助手](https://support.huaweicloud.com/bestpractice-css/css_07_0059.html)
 
