> Discover all available pages from the documentation index: https://mastra.zisheng.pro/llms.txt # OpenSearch Vector 存储 OpenSearchVector 类使用开源搜索与分析引擎 [OpenSearch](https://opensearch.org/) 提供 Vector 搜索。它利用 OpenSearch 的 k-NN 功能执行 Vector 相似度搜索。 ## 构造函数选项 构造函数接受所有 [OpenSearch ClientOptions](https://opensearch.org/docs/latest/clients/javascript/index/),以及一个必需的 `id` 字段。 **id** (`string`): 此 Vector 存储实例的唯一标识符 **node** (`string | string[] | NodeOptions | NodeOptions[]`): OpenSearch 节点 URL(例如 'http\://localhost:9200') **auth** (`BasicAuth | BearerAuth | AwsSigv4Auth`): 身份验证配置 **ssl** (`ConnectionOptions`): SSL/TLS 配置 **compression** (`'gzip'`): 启用 gzip 压缩 ## 方法 ### `createIndex()` 使用指定配置创建新索引。 **indexName** (`string`): 要创建的索引名称 **dimension** (`number`): 要存储在索引中的 Vector 维度 **metric** (`'cosine' | 'euclidean' | 'dotproduct'`): Vector 相似度使用的距离度量 (Default: `'cosine'`) ### `listIndexes()` 列出 OpenSearch 实例中的所有索引。 返回:`Promise` ### `describeIndex()` 获取索引信息。 **indexName** (`string`): 要描述的索引名称 ### `deleteIndex()` **indexName** (`string`): 要删除的索引名称 ### `upsert()` **indexName** (`string`): 要 upsert Vector 的索引名称 **vectors** (`number[][]`): 要插入的嵌入 Vector 数组 **metadata** (`Record[]`): 与每个 Vector 对应的元数据对象数组 **ids** (`string[]`): 可选的 Vector ID 数组。未提供时将生成随机 ID ### `query()` **indexName** (`string`): 要查询的索引名称 **queryVector** (`number[]`): 用于查找相似 Vector 的查询 Vector **topK** (`number`): 要返回的结果数量 (Default: `10`) **filter** (`VectorFilter`): 应用于查询的可选筛选条件(MongoDB 风格的查询语法) ### `updateVector()` 按 ID 或元数据筛选条件更新单个 Vector。必须提供 `id` 或 `filter`,但不能同时提供两者。 **indexName** (`string`): 包含待更新 Vector 的索引名称 **id** (`string`): 要更新的 Vector ID(不能与 filter 同时使用) **filter** (`Record`): 用于标识待更新 Vector 的元数据筛选条件(不能与 id 同时使用) **update** (`{ vector?: number[]; metadata?: Record; }`): 包含待更新 Vector 和/或元数据的对象 ### `deleteVector()` 按 ID 从索引中删除单个 Vector。 **indexName** (`string`): 要从中删除 Vector 的索引名称 **id** (`string`): 要删除的 Vector ID ### `deleteVectors()` 按 ID 或元数据筛选条件删除多个 Vector。必须提供 `ids` 或 `filter`,但不能同时提供两者。 **indexName** (`string`): 包含待删除 Vector 的索引名称 **ids** (`string[]`): 要删除的 Vector ID 数组(不能与 filter 同时使用) **filter** (`Record`): 用于标识待删除 Vector 的元数据筛选条件(不能与 ids 同时使用) ## 相关内容 - [元数据筛选器](https://mastra.zisheng.pro/reference/rag/metadata-filters)