OpenSearch Vector Store
The OpenSearchVector class provides vector search using OpenSearch , a powerful open-source search and analytics engine. It leverages OpenSearch’s k-NN capabilities to perform efficient vector similarity search.
Constructor Options
url:
string
OpenSearch connection URL (e.g., 'http://localhost:9200')
Methods
createIndex()
Creates a new index with the specified configuration.
indexName:
string
The name of the index to create
dimension:
number
The dimension of the vectors to be stored in the index
metric?:
'cosine' | 'euclidean' | 'dotproduct'
= 'cosine'
The distance metric to use for vector similarity
listIndexes()
Lists all indexes in the OpenSearch instance.
Returns: Promise<string[]>
describeIndex()
Gets information about an index.
indexName:
string
The name of the index to describe
deleteIndex()
indexName:
string
The name of the index to delete
upsert()
indexName:
string
The name of the index to upsert vectors into
vectors:
number[][]
Array of vector embeddings to insert
metadata?:
Record<string, any>[]
Array of metadata objects corresponding to each vector
ids?:
string[]
Optional array of IDs for the vectors. If not provided, random IDs will be generated
query()
indexName:
string
The name of the index to query
queryVector:
number[]
The query vector to find similar vectors for
topK?:
number
= 10
The number of results to return
filter?:
VectorFilter
Optional filter to apply to the query (MongoDB-style query syntax)
updateIndexById()
Updates a specific vector entry by its ID with new vector data and/or metadata.
indexName:
string
The name of the index to update vectors in
id:
string
The ID of the vector to update
update:
object
Update data containing vector and/or metadata
update.vector?:
number[]
The new vector embedding
update.metadata?:
Record<string, any>
The new metadata
deleteIndexById()
Deletes specific vector entries by their IDs from the index.
indexName:
string
The name of the index to delete vectors from
ids:
string[]
Array of vector IDs to delete