Share via


PostgresMemoryStore Class

Definition

An implementation of IMemoryStore backed by a Postgres database with pgvector extension.

public class PostgresMemoryStore : IDisposable, Microsoft.SemanticKernel.Memory.IMemoryStore
type PostgresMemoryStore = class
    interface IMemoryStore
    interface IDisposable
Public Class PostgresMemoryStore
Implements IDisposable, IMemoryStore
Inheritance
PostgresMemoryStore
Implements

Remarks

The embedded data is saved to the Postgres database specified in the constructor. Similarity search capability is provided through the pgvector extension. Use Postgres's "Table" to implement "Collection".

Constructors

PostgresMemoryStore(IPostgresDbClient)

Initializes a new instance of the PostgresMemoryStore class.

PostgresMemoryStore(NpgsqlDataSource, Int32, String)

Initializes a new instance of the PostgresMemoryStore class.

PostgresMemoryStore(String, Int32, String)

Initializes a new instance of the PostgresMemoryStore class.

Methods

CreateCollectionAsync(String, CancellationToken)

Creates a new collection in the data store.

DeleteCollectionAsync(String, CancellationToken)

Deletes a collection from the data store.

Dispose()

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

Dispose(Boolean)

Disposes the managed resources.

DoesCollectionExistAsync(String, CancellationToken)

Determines if a collection exists in the data store.

GetAsync(String, String, Boolean, CancellationToken)

Gets a memory record from the data store. Does not guarantee that the collection exists.

GetBatchAsync(String, IEnumerable<String>, Boolean, CancellationToken)

Gets a batch of memory records from the data store. Does not guarantee that the collection exists.

GetCollectionsAsync(CancellationToken)

Gets all collection names in the data store.

GetNearestMatchAsync(String, ReadOnlyMemory<Single>, Double, Boolean, CancellationToken)

Gets the nearest match to an embedding of type Single. Does not guarantee that the collection exists.

GetNearestMatchesAsync(String, ReadOnlyMemory<Single>, Int32, Double, Boolean, CancellationToken)

Gets the nearest matches to an embedding of type Single. Does not guarantee that the collection exists.

RemoveAsync(String, String, CancellationToken)

Removes a memory record from the data store. Does not guarantee that the collection exists.

RemoveBatchAsync(String, IEnumerable<String>, CancellationToken)

Removes a batch of memory records from the data store. Does not guarantee that the collection exists.

UpsertAsync(String, MemoryRecord, CancellationToken)

Upserts a memory record into the data store. Does not guarantee that the collection exists. If the record already exists, it will be updated. If the record does not exist, it will be created.

UpsertBatchAsync(String, IEnumerable<MemoryRecord>, CancellationToken)

Upserts a group of memory records into the data store. Does not guarantee that the collection exists. If the record already exists, it will be updated. If the record does not exist, it will be created.

Applies to