Skip to main content

Class: PGVectorStore

Provides support for writing and querying vector data in Postgres. Note: Can't be used with data created using the Python version of the vector store (https://docs.llamaindex.ai/en/stable/examples/vector_stores/postgres.html)

Implements

Constructors

new PGVectorStore()

new PGVectorStore(config?): PGVectorStore

Constructs a new instance of the PGVectorStore

If the connectionString is not provided the following env variables are used to connect to the DB: PGHOST=your database host PGUSER=your database user PGPASSWORD=your database password PGDATABASE=your database name PGPORT=your database port

Parameters

config?

The configuration settings for the instance.

config.connectionString?: string

The connection string (optional).

config.dimensions?: number

The dimensions of the embedding model.

config.schemaName?: string

The name of the schema (optional). Defaults to PGVECTOR_SCHEMA.

config.tableName?: string

The name of the table (optional). Defaults to PGVECTOR_TABLE.

Returns

PGVectorStore

Source

packages/core/src/storage/vectorStore/PGVectorStore.ts:48

Properties

collection

private collection: string = ""

Source

packages/core/src/storage/vectorStore/PGVectorStore.ts:23


connectionString

private connectionString: undefined | string = undefined

Source

packages/core/src/storage/vectorStore/PGVectorStore.ts:26


db?

private optional db: Client

Source

packages/core/src/storage/vectorStore/PGVectorStore.ts:29


dimensions

private dimensions: number = 1536

Source

packages/core/src/storage/vectorStore/PGVectorStore.ts:27


schemaName

private schemaName: string = PGVECTOR_SCHEMA

Source

packages/core/src/storage/vectorStore/PGVectorStore.ts:24


storesText

storesText: boolean = true

Implementation of

VectorStore . storesText

Source

packages/core/src/storage/vectorStore/PGVectorStore.ts:21


tableName

private tableName: string = PGVECTOR_TABLE

Source

packages/core/src/storage/vectorStore/PGVectorStore.ts:25

Methods

add()

add(embeddingResults): Promise<string[]>

Adds vector record(s) to the table. NOTE: Uses the collection property controlled by setCollection/getCollection.

Parameters

embeddingResults: BaseNode <Metadata>[]

The Nodes to be inserted, optionally including metadata tuples.

Returns

Promise<string[]>

A list of zero or more id values for the created records.

Implementation of

VectorStore . add

Source

packages/core/src/storage/vectorStore/PGVectorStore.ts:189


checkSchema()

private checkSchema(db): Promise<Client>

Parameters

db: Client

Returns

Promise<Client>

Source

packages/core/src/storage/vectorStore/PGVectorStore.ts:114


clearCollection()

clearCollection(): Promise<QueryResult<any>>

Delete all vector records for the specified collection. NOTE: Uses the collection property controlled by setCollection/getCollection.

Returns

Promise<QueryResult<any>>

The result of the delete query.

Source

packages/core/src/storage/vectorStore/PGVectorStore.ts:150


client()

client(): Promise<Client>

Connects to the database specified in environment vars. This method also checks and creates the vector extension, the destination table and indexes if not found.

Returns

Promise<Client>

A connection to the database, or the error encountered while connecting/setting up.

Implementation of

VectorStore . client

Source

packages/core/src/storage/vectorStore/PGVectorStore.ts:141


delete()

delete(refDocId, deleteKwargs?): Promise<void>

Deletes a single record from the database by id. NOTE: Uses the collection property controlled by setCollection/getCollection.

Parameters

refDocId: string

Unique identifier for the record to delete.

deleteKwargs?: any

Required by VectorStore interface. Currently ignored.

Returns

Promise<void>

Promise that resolves if the delete query did not throw an error.

Implementation of

VectorStore . delete

Source

packages/core/src/storage/vectorStore/PGVectorStore.ts:227


getCollection()

getCollection(): string

Getter for the collection property. Using a collection allows for simple segregation of vector data, e.g. by user, source, or access-level. Leave/set blank to ignore the collection value when querying.

Returns

string

The currently-set collection value. Default is empty string.

Source

packages/core/src/storage/vectorStore/PGVectorStore.ts:78


getDataToInsert()

private getDataToInsert(embeddingResults): any[][]

Parameters

embeddingResults: BaseNode <Metadata>[]

Returns

any[][]

Source

packages/core/src/storage/vectorStore/PGVectorStore.ts:160


getDb()

private getDb(): Promise<Client>

Returns

Promise<Client>

Source

packages/core/src/storage/vectorStore/PGVectorStore.ts:82


persist()

persist(persistPath, fs?): Promise<void>

Required by VectorStore interface. Currently ignored.

Parameters

persistPath: string

fs?: GenericFileSystem

Returns

Promise<void>

Resolved Promise.

Source

packages/core/src/storage/vectorStore/PGVectorStore.ts:310


query()

query(query, options?): Promise <VectorStoreQueryResult>

Query the vector store for the closest matching data to the query embeddings

Parameters

query: VectorStoreQuery

The VectorStoreQuery to be used

options?: any

Required by VectorStore interface. Currently ignored.

Returns

Promise <VectorStoreQueryResult>

Zero or more Document instances with data from the vector store.

Implementation of

VectorStore . query

Source

packages/core/src/storage/vectorStore/PGVectorStore.ts:248


setCollection()

setCollection(coll): void

Setter for the collection property. Using a collection allows for simple segregation of vector data, e.g. by user, source, or access-level. Leave/set blank to ignore the collection value when querying.

Parameters

coll: string

Name for the collection.

Returns

void

Source

packages/core/src/storage/vectorStore/PGVectorStore.ts:67