Security note: Make sure that the database connection uses credentials that are narrowly-scoped to only include necessary permissions. Failure to do so may result in data corruption or loss, since the calling code may attempt commands that would result in deletion, mutation of data if appropriately prompted or reading sensitive data if such data is present in the database. The best way to guard against such negative outcomes is to (as appropriate) limit the permissions granted to the credentials used with this tool. For example, creating read only users for the database is a good way to ensure that the calling code cannot mutate or delete data.

See https://js.langchain.com/docs/security for more information.

Hierarchy

  • VectorStore
    • Neo4jVectorStore

Constructors

Properties

FilterType: string | object

Defines the filter type used in search and delete operations. Can be an object for structured conditions or a string for simpler filtering.

embeddings: EmbeddingsInterface

Embeddings interface for generating vector embeddings from text queries, enabling vector-based similarity searches.

Methods

  • Adds documents to the vector store, embedding them first through the embeddings instance.

    Parameters

    • documents: Document<Record<string, any>>[]

      Array of documents to embed and add.

    Returns Promise<string[]>

    A promise resolving to an array of document IDs or void, based on implementation.

  • Adds precomputed vectors and corresponding documents to the vector store.

    Parameters

    • vectors: number[][]

      An array of vectors representing each document.

    • documents: Document<Record<string, any>>[]

      Array of documents associated with each vector.

    • Optionalmetadatas: Record<string, any>[]
    • Optionalids: string[]

    Returns Promise<string[]>

    A promise resolving to an array of document IDs or void, based on implementation.

  • Creates a VectorStoreRetriever instance with flexible configuration options.

    Parameters

    • OptionalkOrFields: number | Partial<VectorStoreRetrieverInput<Neo4jVectorStore>>

      If a number is provided, it sets the k parameter (number of items to retrieve).

      • If an object is provided, it should contain various configuration options.
    • Optionalfilter: string | object

      Optional filter criteria to limit the items retrieved based on the specified filter type.

    • Optionalcallbacks: Callbacks

      Optional callbacks that may be triggered at specific stages of the retrieval process.

    • Optionaltags: string[]

      Tags to categorize or label the VectorStoreRetriever. Defaults to an empty array if not provided.

    • Optionalmetadata: Record<string, unknown>

      Additional metadata as key-value pairs to add contextual information for the retrieval process.

    • Optionalverbose: boolean

      If true, enables detailed logging for the retrieval process. Defaults to false.

    Returns VectorStoreRetriever<Neo4jVectorStore>

    • A configured VectorStoreRetriever instance based on the provided parameters.

    Basic usage with a k value:

    const retriever = myVectorStore.asRetriever(5);
    

    Usage with a configuration object:

    const retriever = myVectorStore.asRetriever({
    k: 10,
    filter: myFilter,
    tags: ['example', 'test'],
    verbose: true,
    searchType: 'mmr',
    searchKwargs: { alpha: 0.5 },
    });
  • Deletes documents from the vector store based on the specified parameters.

    Parameters

    • Optional_params: Record<string, any>

      Flexible key-value pairs defining conditions for document deletion.

    Returns Promise<void>

    A promise that resolves once the deletion is complete.

  • Return documents selected using the maximal marginal relevance. Maximal marginal relevance optimizes for similarity to the query AND diversity among selected documents.

    Parameters

    • query: string

      Text to look up documents similar to.

    • options: MaxMarginalRelevanceSearchOptions<string | object>
    • _callbacks: undefined | Callbacks

    Returns Promise<DocumentInterface<Record<string, any>>[]>

    • List of documents selected by maximal marginal relevance.
  • Searches for documents similar to a text query by embedding the query and performing a similarity search on the resulting vector.

    Parameters

    • query: string

      Text query for finding similar documents.

    • k: number = 4

      Number of similar results to return. Defaults to 4.

    • params: Record<string, any> = {}

    Returns Promise<Document<Record<string, any>>[]>

    A promise resolving to an array of DocumentInterface instances representing similar documents.

  • Performs a similarity search using a vector query and returns results along with their similarity scores.

    Parameters

    • vector: number[]
    • k: number

      Number of similar results to return.

    • query: string

      Vector representing the search query.

    • params: Record<string, any> = {}

    Returns Promise<[Document<Record<string, any>>, number][]>

    A promise resolving to an array of tuples containing documents and their similarity scores.

  • Searches for documents similar to a text query by embedding the query, and returns results with similarity scores.

    Parameters

    • query: string

      Text query for finding similar documents.

    • k: number = 4

      Number of similar results to return. Defaults to 4.

    • params: Record<string, any> = {}

    Returns Promise<[Document<Record<string, any>>, number][]>

    A promise resolving to an array of tuples, each containing a document and its similarity score.

  • Returns Serialized

  • Creates a VectorStore instance from an array of documents, using the specified embeddings and database configuration.

    Subclasses must implement this method to define how documents are embedded and stored. Throws an error if not overridden.

    Parameters

    • docs: Document<Record<string, any>>[]
    • embeddings: EmbeddingsInterface
    • config: Neo4jVectorStoreArgs

    Returns Promise<Neo4jVectorStore>

    A promise that resolves to a new VectorStore instance.

    Throws an error if this method is not overridden by a subclass.

  • Creates a VectorStore instance from an array of text strings and optional metadata, using the specified embeddings and database configuration.

    Subclasses must implement this method to define how text and metadata are embedded and stored in the vector store. Throws an error if not overridden.

    Parameters

    • texts: string[]
    • metadatas: any
    • embeddings: EmbeddingsInterface
    • config: Neo4jVectorStoreArgs

    Returns Promise<Neo4jVectorStore>

    A promise that resolves to a new VectorStore instance.

    Throws an error if this method is not overridden by a subclass.