跳至主要內容

OpenSearch 向量儲存

OpenSearchVector 類別使用開源搜尋及分析引擎 OpenSearch 提供向量搜尋功能。它運用 OpenSearch 的 k-NN 功能執行向量相似度搜尋。

建構函數選項
建構函數選項 的直接連結

建構函數接受所有 OpenSearch ClientOptions,並額外要求必填的 id 欄位。

id:

string
此向量儲存實例的唯一識別碼

node:

string | string[] | NodeOptions | NodeOptions[]
OpenSearch 節點 URL(例如 'http://localhost:9200')

auth?:

BasicAuth | BearerAuth | AwsSigv4Auth
驗證設定

ssl?:

ConnectionOptions
SSL/TLS 設定

compression?:

'gzip'
啟用 gzip 壓縮

方法
方法 的直接連結

createIndex()
createindex 的直接連結

使用指定設定建立新索引。

indexName:

string
要建立的索引名稱

dimension:

number
要儲存在索引中的向量維度

metric?:

'cosine' | 'euclidean' | 'dotproduct'
= 'cosine'
向量相似度所使用的距離度量

listIndexes()
listindexes 的直接連結

列出 OpenSearch 實例中的所有索引。

傳回:Promise<string[]>

describeIndex()
describeindex 的直接連結

取得索引的資料。

indexName:

string
要描述的索引名稱

deleteIndex()
deleteindex 的直接連結

indexName:

string
要刪除的索引名稱

upsert()
upsert 的直接連結

indexName:

string
要向其中 upsert 向量的索引名稱

vectors:

number[][]
要插入的向量嵌入陣列

metadata?:

Record<string, any>[]
與各個向量對應的 metadata 物件陣列

ids?:

string[]
向量 ID 的選填陣列。如未提供,系統會產生隨機 ID

query()
query 的直接連結

indexName:

string
要查詢的索引名稱

queryVector:

number[]
用於尋找相似向量的查詢向量

topK?:

number
= 10
要傳回的結果數目

filter?:

VectorFilter
套用至查詢的選填篩選條件(MongoDB 風格查詢語法)

updateVector()
updatevector 的直接連結

按 ID 或 metadata 篩選條件更新單一向量。必須提供 idfilter 其中一項,但不可同時提供兩者。

indexName:

string
要在其中更新向量的索引名稱

id?:

string
要更新的向量 ID(不可與 filter 同時使用)

filter?:

Record<string, any>
用於識別要更新向量的 metadata 篩選條件(不可與 id 同時使用)

update:

{ vector?: number[]; metadata?: Record<string, any>; }
包含要更新的向量及/或 metadata 的物件

deleteVector()
deletevector 的直接連結

按 ID 從索引刪除單一向量。

indexName:

string
要從中刪除向量的索引名稱

id:

string
要刪除的向量 ID

deleteVectors()
deletevectors 的直接連結

按 ID 或 metadata 篩選條件刪除多個向量。必須提供 idsfilter 其中一項,但不可同時提供兩者。

indexName:

string
包含要刪除向量的索引名稱

ids?:

string[]
要刪除的向量 ID 陣列(不可與 filter 同時使用)

filter?:

Record<string, any>
用於識別要刪除向量的 metadata 篩選條件(不可與 ids 同時使用)