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
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
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
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
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
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
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