fix: wire MongoDB label filters through prepare_filter - #853
Open
daviddallakyan2005 wants to merge 2 commits into
Open
fix: wire MongoDB label filters through prepare_filter#853daviddallakyan2005 wants to merge 2 commits into
daviddallakyan2005 wants to merge 2 commits into
Conversation
Filtered search silently ignored labels because insert dropped labels_data, prepare_filter was a no-op, and the vector index never declared path label. Mirror qdrant_cloud for StrEqual only.
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: daviddallakyan2005 The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
Expand offline mocks for filter_supported, runner insert kwargs, leftover filters= on search, and optimize index declaration.
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
MongoDB label-filter cases were silently unfiltered (recall ~0.111 vs ~0.982 once labels actually reach
$vectorSearch). The runner already passeslabels_data=into insert and callsprepare_filterthensearch_embedding(query, k)— it never passesfilters=into search. This wires the four missing pieces, matchingqdrant_cloud:supported_filter_types = [NonFilter, StrEqual]so label cases are not skippedlabels_dataon documents aslabelwhenwith_scalar_labelsprepare_filterstashes{label: <value>}for search to apply{type: "filter", path: "label"}to the vector search index whenwith_scalar_labels(Atlas rejects undeclared filter paths)Does not add ingest-once
metadata_fields, dictlabels_data, orNumGE.How to test
make unittestis the network dataset download only and does not run this file.