Skip to content

Simplify the implementation of vector search filter logic#394

Merged
abhinavdangeti merged 3 commits intomasterfrom
simplifyFilter
Apr 15, 2026
Merged

Simplify the implementation of vector search filter logic#394
abhinavdangeti merged 3 commits intomasterfrom
simplifyFilter

Conversation

@Thejas-bhat
Copy link
Copy Markdown
Member

@Thejas-bhat Thejas-bhat commented Apr 9, 2026

@Thejas-bhat Thejas-bhat changed the base branch from master to fastbivf April 9, 2026 21:27
@Thejas-bhat Thejas-bhat changed the base branch from fastbivf to master April 9, 2026 22:12
@Thejas-bhat Thejas-bhat changed the base branch from master to fastbivf April 9, 2026 22:12
@Thejas-bhat Thejas-bhat changed the base branch from fastbivf to master April 9, 2026 22:22
@Thejas-bhat Thejas-bhat changed the title draft: simplify the implementation of filter logic Simplify the implementation of vector search filter logic Apr 15, 2026
@Thejas-bhat Thejas-bhat marked this pull request as ready for review April 15, 2026 17:14
@abhinavdangeti abhinavdangeti merged commit dd69bfa into master Apr 15, 2026
9 checks passed
@abhinavdangeti abhinavdangeti deleted the simplifyFilter branch April 15, 2026 18:41
@abhinavdangeti
Copy link
Copy Markdown
Member

v17.0.9

@CascadingRadium
Copy link
Copy Markdown
Member

CascadingRadium commented Apr 15, 2026

Hey @Thejas-bhat, I do not understand the need or the urgency of this PR.
I am seeing some issues here and I am wondering why this PR was merged in with this haste without a proper review from the team, given that the PR was marked as ready for review a few hours back.

  1. When we have a search request coming in on a segment with no exclude bitmap (which happens when there are no deleted vectors in the segment) - the exclude bitmap is nil and hence selector too will be nil. In this case, if the params is not nil and selector is nil (for float32 indices), we just call the go-faiss SearchWithSelector API which will error out. This is orthogonal to the earlier behavior where we handled this case well, where we created a valid SearchParams.

  2. When using for BIVF indices, in the case where selector is not nil and params is nil, we call SearchWithSelector where simply ignore the selector and call b.Search(xb, k)

  3. For BIVF incides again: if selector is nil (no exclusions) and params is not nil, we simply error out.

cc @abhinavdangeti

@abhinavdangeti
Copy link
Copy Markdown
Member

Good spot @CascadingRadium 👍🏼 , let's get these addressed soon.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants