Documentation
¶
Overview ¶
Package graph provides GraphRAG retrieval steps following Microsoft GraphRAG architecture. Steps include: LocalSearch, GlobalSearch, and HybridSearch for different query scenarios.
Index ¶
- func NewGlobalSearch(graphStore core.GraphStore, embedder embedding.Provider, ...) pipeline.Step[*core.RetrievalContext]
- func NewHybridSearch(graphStore core.GraphStore, vectorStore core.VectorStore, ...) pipeline.Step[*core.RetrievalContext]
- func NewLocalSearch(graphStore core.GraphStore, opts ...LocalSearchOption) pipeline.Step[*core.RetrievalContext]
- type GlobalSearch
- type GlobalSearchOption
- type HybridSearch
- type HybridSearchOption
- type LocalSearch
- type LocalSearchOption
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