graph

package
v1.1.8 Latest Latest
Warning

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

Go to latest
Published: Apr 6, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Package graph provides GraphRAG retrieval steps following Microsoft GraphRAG architecture. Steps include: LocalSearch, GlobalSearch, and HybridSearch for different query scenarios.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewGlobalSearch

func NewGlobalSearch(graphStore core.GraphStore, embedder embedding.Provider, opts ...GlobalSearchOption) pipeline.Step[*core.RetrievalContext]

NewGlobalSearch creates a global search step for community-centric retrieval.

func NewHybridSearch

func NewHybridSearch(graphStore core.GraphStore, vectorStore core.VectorStore, embedder embedding.Provider, opts ...HybridSearchOption) pipeline.Step[*core.RetrievalContext]

NewHybridSearch creates a hybrid search step combining multiple retrieval strategies.

func NewLocalSearch

func NewLocalSearch(graphStore core.GraphStore, opts ...LocalSearchOption) pipeline.Step[*core.RetrievalContext]

NewLocalSearch creates a local search step for entity-centric retrieval.

Types

type GlobalSearch

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

GlobalSearch performs community-based search for macro-level queries. Best for: "What are the main themes?" type questions. Following Microsoft GraphRAG: searches community summaries.

func (*GlobalSearch) Execute

func (s *GlobalSearch) Execute(ctx context.Context, rctx *core.RetrievalContext) error

func (*GlobalSearch) Name

func (s *GlobalSearch) Name() string

type GlobalSearchOption

type GlobalSearchOption func(*GlobalSearch)

func WithGlobalTopK

func WithGlobalTopK(topK int) GlobalSearchOption

type HybridSearch

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

HybridSearch combines local graph traversal, global community search, and vector search. Best for: complex queries needing both specific facts and broader context. Following Microsoft GraphRAG: fuses multiple retrieval signals.

func (*HybridSearch) Execute

func (s *HybridSearch) Execute(ctx context.Context, rctx *core.RetrievalContext) error

func (*HybridSearch) Name

func (s *HybridSearch) Name() string

type HybridSearchOption

type HybridSearchOption func(*HybridSearch)

func WithHybridDepth

func WithHybridDepth(depth int) HybridSearchOption

func WithHybridTopK

func WithHybridTopK(topK int) HybridSearchOption

type LocalSearch

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

LocalSearch performs graph traversal from extracted entities. Best for: specific questions about entities and their relationships. Following Microsoft GraphRAG: retrieves source chunks bound to nodes.

func (*LocalSearch) Execute

func (s *LocalSearch) Execute(ctx context.Context, rctx *core.RetrievalContext) error

func (*LocalSearch) Name

func (s *LocalSearch) Name() string

type LocalSearchOption

type LocalSearchOption func(*LocalSearch)

func WithDepth

func WithDepth(depth int) LocalSearchOption

func WithLimit

func WithLimit(limit int) LocalSearchOption

Jump to

Keyboard shortcuts

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