retrieval

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 21, 2026 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ContextualStrategy

type ContextualStrategy struct {
	// contains filtered or unexported fields
}

ContextualStrategy combines vector search with immediate neighbors and hierarchical context

func NewContextualStrategy

func NewContextualStrategy(engine *Engine) *ContextualStrategy

NewContextualStrategy creates a new contextual strategy

func (*ContextualStrategy) Retrieve

func (s *ContextualStrategy) Retrieve(ctx context.Context, embedding []float32, config *model.QueryConfig) ([]*model.RetrievalResult, error)

Retrieve performs contextual retrieval

type Engine

type Engine struct {
	// contains filtered or unexported fields
}

Engine provides hybrid retrieval and graph traversal capabilities

func NewEngine

func NewEngine(chunks *database.ChunksDBHandler, edges *database.EdgesDBHandler, entities *database.EntitiesDBHandler) *Engine

NewEngine creates a new retrieval engine

func (*Engine) BFS

func (e *Engine) BFS(ctx context.Context, sourceID uuid.UUID, maxHops int, edgeTypes []model.EdgeType, followBidirectional bool) ([]*TraversalResult, error)

BFS performs breadth-first search from a source chunk

func (*Engine) DFS

func (e *Engine) DFS(ctx context.Context, sourceID uuid.UUID, maxHops int, edgeTypes []model.EdgeType, followBidirectional bool) ([]*TraversalResult, error)

DFS performs depth-first search from a source chunk

func (*Engine) GetHierarchicalContext

func (e *Engine) GetHierarchicalContext(ctx context.Context, path string, config *model.QueryConfig) ([]*model.Chunk, error)

GetHierarchicalContext retrieves hierarchical context using ltree

func (*Engine) GetNeighbors

func (e *Engine) GetNeighbors(ctx context.Context, chunkID uuid.UUID, edgeTypes []model.EdgeType, followBidirectional bool) ([]*model.Chunk, error)

GetNeighbors retrieves immediate neighbors of a chunk

func (*Engine) VectorRetrieve

func (e *Engine) VectorRetrieve(ctx context.Context, embedding []float32, config *model.QueryConfig) ([]*model.RetrievalResult, error)

VectorRetrieve performs pure vector similarity search

type EntitiesDB

type EntitiesDB interface {
	GetEntity(ctx context.Context, id string) (*model.Entity, error)
	GetChunksForEntity(ctx context.Context, entityID string) ([]*model.Chunk, error)
}

EntitiesDB defines the interface for entity operations

type EntityCentricStrategy

type EntityCentricStrategy struct {
	// contains filtered or unexported fields
}

EntityCentricStrategy retrieves all chunks related to specific entities

func NewEntityCentricStrategy

func NewEntityCentricStrategy(engine *Engine, entitiesDB EntitiesDB) *EntityCentricStrategy

NewEntityCentricStrategy creates a new entity-centric strategy

func (*EntityCentricStrategy) Retrieve

func (s *EntityCentricStrategy) Retrieve(ctx context.Context, entityID uuid.UUID, config *model.QueryConfig) ([]*model.RetrievalResult, error)

Retrieve performs entity-centric retrieval

type HybridStrategy

type HybridStrategy struct {
	// contains filtered or unexported fields
}

HybridStrategy combines vector, graph, and hierarchical signals with configurable weights

func NewHybridStrategy

func NewHybridStrategy(engine *Engine) *HybridStrategy

NewHybridStrategy creates a new hybrid strategy

func (*HybridStrategy) Retrieve

func (s *HybridStrategy) Retrieve(ctx context.Context, embedding []float32, config *model.QueryConfig) ([]*model.RetrievalResult, error)

Retrieve performs hybrid retrieval with weighted combination

type MultiHopStrategy

type MultiHopStrategy struct {
	// contains filtered or unexported fields
}

MultiHopStrategy performs graph traversal from top vector results

func NewMultiHopStrategy

func NewMultiHopStrategy(engine *Engine) *MultiHopStrategy

NewMultiHopStrategy creates a new multi-hop strategy

func (*MultiHopStrategy) Retrieve

func (s *MultiHopStrategy) Retrieve(ctx context.Context, embedding []float32, config *model.QueryConfig) ([]*model.RetrievalResult, error)

Retrieve performs multi-hop retrieval

type Strategy

type Strategy interface {
	Retrieve(ctx context.Context, embedding []float32, config *model.QueryConfig) ([]*model.RetrievalResult, error)
}

Strategy defines a retrieval strategy

type TraversalResult

type TraversalResult struct {
	Chunk    *model.Chunk
	Distance int
	Path     []uuid.UUID // Path from source to this chunk
}

TraversalResult contains a chunk and its distance from the source

type VectorOnlyStrategy

type VectorOnlyStrategy struct {
	// contains filtered or unexported fields
}

VectorOnlyStrategy performs pure vector similarity search

func NewVectorOnlyStrategy

func NewVectorOnlyStrategy(engine *Engine) *VectorOnlyStrategy

NewVectorOnlyStrategy creates a new vector-only strategy

func (*VectorOnlyStrategy) Retrieve

func (s *VectorOnlyStrategy) Retrieve(ctx context.Context, embedding []float32, config *model.QueryConfig) ([]*model.RetrievalResult, error)

Retrieve performs vector-only retrieval

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL