Documentation
¶
Index ¶
- func New(ctx context.Context, opts ...Option) (vectorstore.VectorStore, error)
- type Config
- type FirestoreCollection
- func (c *FirestoreCollection) Clear(ctx context.Context) error
- func (c *FirestoreCollection) Count(ctx context.Context, filter vectorstore.Filter) (int64, error)
- func (c *FirestoreCollection) Delete(ctx context.Context, ids ...string) (*vectorstore.DeleteResult, error)
- func (c *FirestoreCollection) DeleteByFilter(ctx context.Context, filter vectorstore.Filter) (*vectorstore.DeleteResult, error)
- func (c *FirestoreCollection) Get(ctx context.Context, ids ...string) ([]*vectorstore.Document, error)
- func (c *FirestoreCollection) Name() string
- func (c *FirestoreCollection) Query(ctx context.Context, query *vectorstore.Query) (*vectorstore.QueryResult, error)
- func (c *FirestoreCollection) QueryStream(ctx context.Context, query *vectorstore.Query) (vectorstore.ResultIterator, error)
- func (c *FirestoreCollection) Stats(ctx context.Context) (*vectorstore.CollectionStats, error)
- func (c *FirestoreCollection) Upsert(ctx context.Context, documents ...*vectorstore.Document) (*vectorstore.UpsertResult, error)
- func (c *FirestoreCollection) UpsertBatch(ctx context.Context, documents []*vectorstore.Document, ...) (*vectorstore.UpsertResult, error)
- type FirestoreVectorStore
- func (f *FirestoreVectorStore) Close() error
- func (f *FirestoreVectorStore) Collection(name string, opts ...vectorstore.CollectionOption) vectorstore.Collection
- func (f *FirestoreVectorStore) DeleteCollection(ctx context.Context, name string) error
- func (f *FirestoreVectorStore) ListCollections(ctx context.Context) ([]string, error)
- func (f *FirestoreVectorStore) Stats(ctx context.Context) (*vectorstore.StoreStats, error)
- type Option
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func New ¶
func New(ctx context.Context, opts ...Option) (vectorstore.VectorStore, error)
New creates a new FirestoreVectorStore.
Options:
- WithProjectID(id): Set GCP project ID (required)
- WithCredentialsFile(path): Use service account credentials
- Otherwise uses Application Default Credentials
Example:
store, err := firestore.New(ctx,
WithProjectID("my-project"),
WithCredentialsFile("/path/to/credentials.json"),
)
Types ¶
type FirestoreCollection ¶
type FirestoreCollection struct {
// contains filtered or unexported fields
}
FirestoreCollection represents a collection in Firestore.
func (*FirestoreCollection) Clear ¶
func (c *FirestoreCollection) Clear(ctx context.Context) error
Clear removes all documents from the collection.
func (*FirestoreCollection) Count ¶
func (c *FirestoreCollection) Count(ctx context.Context, filter vectorstore.Filter) (int64, error)
Count returns the number of documents in the collection.
func (*FirestoreCollection) Delete ¶
func (c *FirestoreCollection) Delete(ctx context.Context, ids ...string) (*vectorstore.DeleteResult, error)
Delete removes documents by their IDs.
func (*FirestoreCollection) DeleteByFilter ¶
func (c *FirestoreCollection) DeleteByFilter(ctx context.Context, filter vectorstore.Filter) (*vectorstore.DeleteResult, error)
DeleteByFilter removes all documents matching the filter.
func (*FirestoreCollection) Get ¶
func (c *FirestoreCollection) Get(ctx context.Context, ids ...string) ([]*vectorstore.Document, error)
Get retrieves documents by their IDs.
func (*FirestoreCollection) Name ¶
func (c *FirestoreCollection) Name() string
Name returns the collection name.
func (*FirestoreCollection) Query ¶
func (c *FirestoreCollection) Query(ctx context.Context, query *vectorstore.Query) (*vectorstore.QueryResult, error)
Query performs similarity search and returns matching documents.
func (*FirestoreCollection) QueryStream ¶
func (c *FirestoreCollection) QueryStream(ctx context.Context, query *vectorstore.Query) (vectorstore.ResultIterator, error)
QueryStream performs similarity search and streams results via an iterator.
func (*FirestoreCollection) Stats ¶
func (c *FirestoreCollection) Stats(ctx context.Context) (*vectorstore.CollectionStats, error)
Stats returns statistics about the collection.
func (*FirestoreCollection) Upsert ¶
func (c *FirestoreCollection) Upsert(ctx context.Context, documents ...*vectorstore.Document) (*vectorstore.UpsertResult, error)
Upsert inserts or updates documents in the collection.
func (*FirestoreCollection) UpsertBatch ¶
func (c *FirestoreCollection) UpsertBatch(ctx context.Context, documents []*vectorstore.Document, opts ...vectorstore.BatchOption) (*vectorstore.UpsertResult, error)
UpsertBatch performs batch upsert with progress tracking.
type FirestoreVectorStore ¶
type FirestoreVectorStore struct {
// contains filtered or unexported fields
}
FirestoreVectorStore implements an in-production vector store using Google Cloud Firestore. It provides persistent, scalable vector storage with native TTL support.
Features:
- Collection-based isolation
- Native Firestore TTL for automatic expiration
- BulkWriter for efficient batch operations
- Composite indexes for Scope/Temporal fields
- Content hash deduplication
- Thread-safe operations
- Streaming query support
Important Notes:
- Firestore has a 500 operations per batch limit
- Composite indexes must be created for filtered queries
- Use FieldPath for safe metadata access
- Collections map to Firestore collections (not subcollections)
func (*FirestoreVectorStore) Close ¶
func (f *FirestoreVectorStore) Close() error
Close closes the connection to Firestore.
func (*FirestoreVectorStore) Collection ¶
func (f *FirestoreVectorStore) Collection(name string, opts ...vectorstore.CollectionOption) vectorstore.Collection
Collection returns a collection with the specified name and options.
func (*FirestoreVectorStore) DeleteCollection ¶
func (f *FirestoreVectorStore) DeleteCollection(ctx context.Context, name string) error
DeleteCollection permanently deletes a collection and all its documents.
func (*FirestoreVectorStore) ListCollections ¶
func (f *FirestoreVectorStore) ListCollections(ctx context.Context) ([]string, error)
ListCollections returns the names of all collections.
func (*FirestoreVectorStore) Stats ¶
func (f *FirestoreVectorStore) Stats(ctx context.Context) (*vectorstore.StoreStats, error)
Stats returns statistics about the vector store.
type Option ¶
type Option func(*Config)
Option configures a FirestoreVectorStore.
func WithCredentialsFile ¶
WithCredentialsFile sets the path to service account credentials.
func WithProjectID ¶
WithProjectID sets the GCP project ID.