Class that provides a wrapper around the OpenSearch service for vector search. It provides methods for adding documents and vectors to the OpenSearch index, searching for similar vectors, and managing the OpenSearch index.

Hierarchy (view full)

Constructors

Properties

FilterType: OpenSearchFilter

Methods

  • Method to add documents to the OpenSearch index. It first converts the documents to vectors using the embeddings, then adds the vectors to the index.

    Parameters

    • documents: Document[]

      The documents to be added to the OpenSearch index.

    Returns Promise<void>

    Promise resolving to void.

  • Method to add vectors to the OpenSearch index. It ensures the index exists, then adds the vectors and associated documents to the index.

    Parameters

    • vectors: number[][]

      The vectors to be added to the OpenSearch index.

    • documents: Document[]

      The documents associated with the vectors.

    • Optionaloptions: {
          ids?: string[];
      }

      Optional parameter that can contain the IDs for the documents.

      • Optionalids?: string[]

    Returns Promise<void>

    Promise resolving to void.

  • Builds metadata terms for OpenSearch queries.

    This function takes a filter object and constructs an array of query terms compatible with OpenSearch 2.x. It supports a variety of query types including term, terms, terms_set, ids, range, prefix, exists, fuzzy, wildcard, and regexp. Reference: https://opensearch.org/docs/latest/query-dsl/term/index/

    Parameters

    • filter: undefined | OpenSearchFilter

      The filter object used to construct query terms. Each key represents a field, and the value specifies the type of query and its parameters.

    Returns object

    An array of OpenSearch query terms.

    // Example filter:
    const filter = {
    status: { "exists": true },
    age: { "gte": 30, "lte": 40 },
    tags: ["tag1", "tag2"],
    description: { "wildcard": "*test*" },

    };

    // Resulting query terms:
    const queryTerms = buildMetadataTerms(filter);
    // queryTerms would be an array of OpenSearch query objects.
  • Method to perform a similarity search on the OpenSearch index using a query vector. It returns the k most similar documents and their scores.

    Parameters

    • query: number[]

      The query vector.

    • k: number

      The number of similar documents to return.

    • Optionalfilter: OpenSearchFilter

      Optional filter for the OpenSearch query.

    Returns Promise<[Document, number][]>

    Promise resolving to an array of tuples, each containing a Document and its score.

  • Static method to create a new OpenSearchVectorStore from an array of texts, their metadata, embeddings, and OpenSearch client arguments.

    Parameters

    • texts: string[]

      The texts to be converted into documents and added to the OpenSearch index.

    • metadatas: object | object[]

      The metadata associated with the texts. Can be an array of objects or a single object.

    • embeddings: EmbeddingsInterface

      The embeddings used to convert the texts into vectors.

    • args: OpenSearchClientArgs

      The OpenSearch client arguments.

    Returns Promise<OpenSearchVectorStore>

    Promise resolving to a new instance of OpenSearchVectorStore.

""