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)
Extends
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?: object
& Partial
<IEmbedModel
>
The configuration settings for the instance.
Returns
Overrides
Source
packages/core/src/storage/vectorStore/PGVectorStore.ts:52
Properties
collection
private
collection:string
=""
Source
packages/core/src/storage/vectorStore/PGVectorStore.ts:27
connectionString
private
connectionString:undefined
|string
=undefined
Source
packages/core/src/storage/vectorStore/PGVectorStore.ts:30
db?
private
optional
db:Client
Source
packages/core/src/storage/vectorStore/PGVectorStore.ts:33
dimensions
private
dimensions:number
=1536
Source
packages/core/src/storage/vectorStore/PGVectorStore.ts:31
embedModel
embedModel:
BaseEmbedding
Inherited from
Source
packages/core/src/storage/vectorStore/types.ts:86
schemaName
private
schemaName:string
=PGVECTOR_SCHEMA
Source
packages/core/src/storage/vectorStore/PGVectorStore.ts:28
storesText
storesText:
boolean
=true
Implementation of
VectorStoreNoEmbedModel
. storesText
Source
packages/core/src/storage/vectorStore/PGVectorStore.ts:25
tableName
private
tableName:string
=PGVECTOR_TABLE
Source
packages/core/src/storage/vectorStore/PGVectorStore.ts:29
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:196
checkSchema()
private
checkSchema(db
):Promise
<Client
>
Parameters
• db: Client
Returns
Promise
<Client
>
Source
packages/core/src/storage/vectorStore/PGVectorStore.ts:121
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:157
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
VectorStoreNoEmbedModel
. client
Source
packages/core/src/storage/vectorStore/PGVectorStore.ts:148
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
VectorStoreNoEmbedModel
. delete
Source
packages/core/src/storage/vectorStore/PGVectorStore.ts:234
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:85
getDataToInsert()
private
getDataToInsert(embeddingResults
):any
[][]
Parameters
• embeddingResults: BaseNode
<Metadata
>[]
Returns
any
[][]
Source
packages/core/src/storage/vectorStore/PGVectorStore.ts:167
getDb()
private
getDb():Promise
<Client
>
Returns
Promise
<Client
>
Source
packages/core/src/storage/vectorStore/PGVectorStore.ts:89
persist()
persist(
persistPath
):Promise
<void
>
Required by VectorStore interface. Currently ignored.
Parameters
• persistPath: string
Returns
Promise
<void
>
Resolved Promise.
Source
packages/core/src/storage/vectorStore/PGVectorStore.ts:317
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
VectorStoreNoEmbedModel
. query
Source
packages/core/src/storage/vectorStore/PGVectorStore.ts:255
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.