Skip to main content

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
Direct link to Constructor Options

url:

string
OpenSearch connection URL (e.g., 'http://localhost:9200')

Methods
Direct link to Methods

createIndex()
Direct link to 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()
Direct link to listIndexes()

Lists all indexes in the OpenSearch instance.

Returns: Promise<string[]>

describeIndex()
Direct link to describeIndex()

Gets information about an index.

indexName:

string
The name of the index to describe

deleteIndex()
Direct link to deleteIndex()

indexName:

string
The name of the index to delete

upsert()
Direct link to 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()
Direct link to 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)

updateVector()
Direct link to updateVector()

Update a single vector by ID or by metadata filter. Either id or filter must be provided, but not both.

indexName:

string
The name of the index to update vectors in

id?:

string
The ID of the vector to update (mutually exclusive with filter)

filter?:

Record<string, any>
Metadata filter to identify vector(s) to update (mutually exclusive with id)

update:

{ vector?: number[]; metadata?: Record<string, any>; }
Object containing the vector and/or metadata to update

deleteVector()
Direct link to deleteVector()

Deletes a single vector by its ID from the index.

indexName:

string
The name of the index to delete the vector from

id:

string
The ID of the vector to delete

deleteVectors()
Direct link to deleteVectors()

Delete multiple vectors by IDs or by metadata filter. Either ids or filter must be provided, but not both.

indexName:

string
Name of the index containing the vectors to delete

ids?:

string[]
Array of vector IDs to delete (mutually exclusive with filter)

filter?:

Record<string, any>
Metadata filter to identify vectors to delete (mutually exclusive with ids)