Documentation
¶
Overview ¶
Package database provides comprehensive database infrastructure for DictaMesh. It includes connection pooling, migrations, ORM, vector search, caching, and audit logging.
Index ¶
- type Config
- type Database
- func (db *Database) Close() error
- func (db *Database) Connect(ctx context.Context) error
- func (db *Database) GORM() *gorm.DB
- func (db *Database) GetMetrics() *Metrics
- func (db *Database) Ping(ctx context.Context) error
- func (db *Database) Pool() *pgxpool.Pool
- func (db *Database) Stats() sql.DBStats
- func (db *Database) StdDB() *sql.DB
- func (db *Database) WithPgxTransaction(ctx context.Context, fn func(pgx.Tx) error) error
- func (db *Database) WithTransaction(ctx context.Context, fn func(*gorm.DB) error) error
- type DocumentChunk
- type EmbeddingModel
- type EntityEmbedding
- type HybridSearchResult
- type Metrics
- type RelevantChunk
- type SimilarEntity
- type VectorSearch
- func (vs *VectorSearch) BatchStoreChunks(ctx context.Context, chunks []DocumentChunk) error
- func (vs *VectorSearch) DeleteDocumentChunks(ctx context.Context, catalogID string) error
- func (vs *VectorSearch) DeleteEmbeddings(ctx context.Context, catalogID string) error
- func (vs *VectorSearch) FindRelevantChunks(ctx context.Context, queryEmbedding pgvector.Vector, modelName string, ...) ([]RelevantChunk, error)
- func (vs *VectorSearch) FindSimilarEntities(ctx context.Context, queryEmbedding pgvector.Vector, modelName string, ...) ([]SimilarEntity, error)
- func (vs *VectorSearch) HybridSearch(ctx context.Context, queryText string, queryEmbedding pgvector.Vector, ...) ([]HybridSearchResult, error)
- func (vs *VectorSearch) StoreDocumentChunk(ctx context.Context, chunk *DocumentChunk) error
- func (vs *VectorSearch) StoreEmbedding(ctx context.Context, embedding *EntityEmbedding) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
// Connection settings
Host string
Port int
User string
Password string
Database string
SSLMode string
// Connection pool settings
MaxOpenConns int
MaxIdleConns int
ConnMaxLifetime time.Duration
ConnMaxIdleTime time.Duration
// Performance settings
StatementTimeout time.Duration
IdleInTxTimeout time.Duration
// Feature flags
EnableMigrations bool
EnableVectorSearch bool
EnableAuditLog bool
// Observability
EnableMetrics bool
EnableTracing bool
LogLevel string
}
Config represents database configuration
func DefaultConfig ¶
func DefaultConfig() *Config
DefaultConfig returns a production-ready default configuration
type Database ¶
type Database struct {
// contains filtered or unexported fields
}
Database represents the main database connection manager
func (*Database) GetMetrics ¶
GetMetrics returns current performance metrics
func (*Database) WithPgxTransaction ¶
WithPgxTransaction executes a function within a pgx transaction
type DocumentChunk ¶
type DocumentChunk struct {
ID string
CatalogID string
ChunkIndex int
ChunkText string
ChunkTokens int
EmbeddingModel string
Embedding pgvector.Vector
PrecedingContext string
FollowingContext string
Metadata map[string]interface{}
}
DocumentChunk represents a chunked document for RAG
type EmbeddingModel ¶
EmbeddingModel represents an embedding model configuration
type EntityEmbedding ¶
type EntityEmbedding struct {
ID string
CatalogID string
EmbeddingModel string
EmbeddingVersion string
EmbeddingDimensions int
Embedding pgvector.Vector
SourceText string
SourceFields map[string]interface{}
Metadata map[string]interface{}
}
EntityEmbedding represents a vector embedding of an entity
type HybridSearchResult ¶
type HybridSearchResult struct {
CatalogID string
CombinedScore float64
TextRank float64
VectorSimilarity float64
SourceText string
}
HybridSearchResult represents a result from hybrid search
type Metrics ¶
type Metrics struct {
QueryCount int64
QueryErrors int64
CacheHits int64
CacheMisses int64
ConnectionsOpen int32
ConnectionsIdle int32
AvgQueryDuration time.Duration
}
Metrics tracks database performance metrics
type RelevantChunk ¶
type RelevantChunk struct {
ChunkID string
CatalogID string
ChunkText string
ChunkIndex int
PrecedingContext string
FollowingContext string
Similarity float64
Metadata map[string]interface{}
}
RelevantChunk represents a relevant document chunk for RAG
type SimilarEntity ¶
type SimilarEntity struct {
CatalogID string
Similarity float64
SourceText string
Metadata map[string]interface{}
}
SimilarEntity represents a search result with similarity score
type VectorSearch ¶
type VectorSearch struct {
// contains filtered or unexported fields
}
VectorSearch provides vector similarity search capabilities
func NewVectorSearch ¶
func NewVectorSearch(db *Database) *VectorSearch
NewVectorSearch creates a new vector search instance
func (*VectorSearch) BatchStoreChunks ¶
func (vs *VectorSearch) BatchStoreChunks(ctx context.Context, chunks []DocumentChunk) error
BatchStoreChunks stores multiple document chunks in a transaction
func (*VectorSearch) DeleteDocumentChunks ¶
func (vs *VectorSearch) DeleteDocumentChunks(ctx context.Context, catalogID string) error
DeleteDocumentChunks deletes all chunks for a catalog entry
func (*VectorSearch) DeleteEmbeddings ¶
func (vs *VectorSearch) DeleteEmbeddings(ctx context.Context, catalogID string) error
DeleteEmbeddings deletes all embeddings for a catalog entry
func (*VectorSearch) FindRelevantChunks ¶
func (vs *VectorSearch) FindRelevantChunks( ctx context.Context, queryEmbedding pgvector.Vector, modelName string, catalogID *string, similarityThreshold float64, limit int, ) ([]RelevantChunk, error)
FindRelevantChunks finds relevant document chunks for RAG
func (*VectorSearch) FindSimilarEntities ¶
func (vs *VectorSearch) FindSimilarEntities( ctx context.Context, queryEmbedding pgvector.Vector, modelName string, similarityThreshold float64, limit int, ) ([]SimilarEntity, error)
FindSimilarEntities finds entities similar to the query embedding
func (*VectorSearch) HybridSearch ¶
func (vs *VectorSearch) HybridSearch( ctx context.Context, queryText string, queryEmbedding pgvector.Vector, modelName string, textWeight float64, vectorWeight float64, limit int, ) ([]HybridSearchResult, error)
HybridSearch performs combined full-text and vector search
func (*VectorSearch) StoreDocumentChunk ¶
func (vs *VectorSearch) StoreDocumentChunk(ctx context.Context, chunk *DocumentChunk) error
StoreDocumentChunk stores a document chunk with embedding
func (*VectorSearch) StoreEmbedding ¶
func (vs *VectorSearch) StoreEmbedding(ctx context.Context, embedding *EntityEmbedding) error
StoreEmbedding stores an entity embedding
Directories
¶
| Path | Synopsis |
|---|---|
|
Package audit provides comprehensive audit logging and compliance tracking
|
Package audit provides comprehensive audit logging and compliance tracking |
|
Package cache provides multi-layer caching with Redis integration
|
Package cache provides multi-layer caching with Redis integration |
|
Package health provides database health checking and monitoring
|
Package health provides database health checking and monitoring |
|
Package models provides database models for the metadata catalog
|
Package models provides database models for the metadata catalog |
|
Package repository provides repository pattern implementations for database access
|
Package repository provides repository pattern implementations for database access |