Add guided vector-first Arango graph retrieval#2
Draft
JonasReuter wants to merge 6 commits intomainfrom
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a new guided, vector-first ArangoDB graph retrieval path that avoids broad k-hop expansion.
The approach follows the concept we discussed:
1..depthbroad expansionmax_expansions,max_frontier_size,max_edges_per_node,max_results)traverse_neighbors()andhybrid_search()intact for compatibilityWhy
A fixed k-hop traversal can explode on high-degree entities. A node with 1,000 edges can produce ~1,000,000 two-hop candidates. This PR changes the retrieval primitive from "walk all hops" to "walk only promising paths within a strict budget".
The runtime is bounded primarily by:
instead of by:
New API
Also adds a query-layer helper:
Config additions
Performance notes
Testing
Not run locally from this environment. Please run:
Recommended manual test: compare legacy
hybrid_search()against guided retrieval on a high-degree seed and inspectresult["stats"]for bounded expansion behavior.