-
Notifications
You must be signed in to change notification settings - Fork 1.8k
[ENH] Split knn orchestrators for reuse #5347
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Sicheng-Pan
merged 13 commits into
main
from
08-22-_enh_implement_retrieve_orchestrartor
Sep 2, 2025
Merged
[ENH] Split knn orchestrators for reuse #5347
Sicheng-Pan
merged 13 commits into
main
from
08-22-_enh_implement_retrieve_orchestrartor
Sep 2, 2025
+825
−311
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
1 task
Reviewer ChecklistPlease leverage this checklist to ensure your code review is thorough before approving Testing, Bugs, Errors, Logs, Documentation
System Compatibility
Quality
|
1 task
1 task
c8592d1
to
91db19f
Compare
6921a82
to
682b7cc
Compare
4b1be8f
to
613d378
Compare
682b7cc
to
373ebd8
Compare
613d378
to
5a95d37
Compare
4afa332
to
daecf23
Compare
5a95d37
to
2cdad7a
Compare
4944575
to
ffb6f57
Compare
2cdad7a
to
b6d6bdd
Compare
ffb6f57
to
239e413
Compare
b6d6bdd
to
2fcfdb1
Compare
45afad9
to
4fe7e46
Compare
3cca0bf
to
dfc4886
Compare
4fe7e46
to
f07fb90
Compare
dfc4886
to
e962bf5
Compare
c9ea839
to
fc2d707
Compare
007ddcc
to
91132e9
Compare
e431493
to
271d53b
Compare
dd01607
to
c0ee973
Compare
c0ee973
to
ed688f0
Compare
271d53b
to
49963c8
Compare
ed688f0
to
b340fe1
Compare
49963c8
to
6b2004b
Compare
- Test basic k-way merge with Reverse integers to verify correct top-k selection - Test deduplication behavior across and within batches - Test edge cases: empty vectors, single vector, mixed empty/non-empty - Test k boundary conditions (k=0, k=1, k > total elements) - Test with different orderable types (strings, custom structs) - Test order preservation in output - Test all-same-values edge case for deduplication - Fix Limit test field names after rename (skip→offset, fetch→limit) The tests ensure the generic Merge::merge algorithm correctly handles: - Max heap based k-way merge - Proper ordering based on type's Ord implementation - Deduplication of equal elements - Edge cases and boundary conditions
6b2004b
to
f2ac557
Compare
b340fe1
to
0e3d03e
Compare
- Replace most Reverse<u32> tests with direct integer types (u32, i32, i64, u128) - Test with regular descending order integers instead of always using Reverse wrapper - Add tests with signed integers including negative values - Remove float tests since they don't implement Ord trait - Keep mix of Reverse tests and direct integer tests for better coverage The tests now better demonstrate the generic nature of the Merge algorithm with various integer types in their natural descending order.
f2ac557
to
ee62311
Compare
Merge activity
|
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.
Description of changes
Summarize the changes made by this PR.
KnnOrchestrator
andSpannKnnOrchestrator
, so that we can reuse these orchestrators for search endpointTest plan
How are these changes tested?
pytest
for python,yarn test
for js,cargo test
for rustMigration plan
Are there any migrations, or any forwards/backwards compatibility changes needed in order to make sure this change deploys reliably?
Observability plan
What is the plan to instrument and monitor this change?
Documentation Changes
Are all docstrings for user-facing APIs updated if required? Do we need to make documentation changes in the docs section?