MB-27666, MB-69881: Backport necessary commits into morpheus#2273
Merged
CascadingRadium merged 9 commits into8.0.x-couchbasefrom Jan 21, 2026
Merged
MB-27666, MB-69881: Backport necessary commits into morpheus#2273CascadingRadium merged 9 commits into8.0.x-couchbasefrom
morpheus#2273CascadingRadium merged 9 commits into8.0.x-couchbasefrom
Conversation
- Use a `bitset` to track eligible documents instead of a slice of `N uint64s`, reducing memory usage from `8N bytes` to `N/8 bytes` per segment (up to `64×` reduction) and improving cache locality. - Pass an iterator over eligible documents that iterates the bitset directly, allowing direct translation into a bitset of eligible vector IDs in the storage layer and eliminating the need for a separate slice intermediary. - Fix garbage creation in the `UnadornedPostingsIterator`, which previously allocated a temporary struct per Next() call to wrap a doc number and satisfy the `Postings` interface; the iterator now returns a single reusable struct (one-time allocation) consistent with the working of the `PostingsIterator` in the storage-layer. - Avoid unnecessary `BytesRead` statistics computation when executing searches in no-scoring mode, removing redundant work as a micro-optimization. --------- Co-authored-by: Abhinav Dangeti <abhinav@couchbase.com>
Add support for nested fields in indexing and querying - Parse and index nested JSON objects - Enable queries on nested fields - Preserve hierarchical relationships in index Requires: - blevesearch/bleve_index_api#70 - https://github.com/blevesearch/bleve_index_api/releases/tag/v1.3.0 - blevesearch/scorch_segment_api#63 - https://github.com/blevesearch/scorch_segment_api/releases/tag/v2.4.0 - blevesearch/zapx#339, blevesearch/zapx#365 - https://github.com/blevesearch/zapx/releases/tag/v17.0.0 - https://github.com/blevesearch/zapx/releases/tag/v16.3.0 Resolves: - #15 - #637 - #1297 --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Abhinav Dangeti <abhinav@couchbase.com>
- Fix nested-mode search for field-implicit queries (`match_all`, `docID`): These queries previously filtered nested documents at the searcher level, but since `ExtractFields` returned no fields, the nested collector was never activated. In compound queries (e.g., Boolean filters), this caused a level mismatch—searcher filtering vs nested-level execution—resulting in zero matches. - Unify filtering at collector level: Introduced `HasID()` and `HasAll()` flags in `FieldSet` to track field-implicit queries. Removed searcher-level filtering from `MatchAllSearcher`. - Nested collector now correctly activates, ensuring consistent behavior regardless of query composition. - Fix an edge case where usage of `match_all query` as a sub-clause in a `NestedConjunctionSearcher` could cause a panic. - Fix a case where root document fields would get excluded from the `_all` field even when included. - Fix outdated information in `hierarchy.md` - Add unit tests for Hierarchical Nested Vector Search.
abhinavdangeti
approved these changes
Jan 20, 2026
Thejas-bhat
approved these changes
Jan 20, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 49 out of 50 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
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.
v8.0.x-couchbasevia cherry-pick