Skip to content

Commit

Permalink
Fix failed tests and rebase on main branch
Browse files Browse the repository at this point in the history
Signed-off-by: Wei Wang <[email protected]>
  • Loading branch information
weiwang118 committed Dec 18, 2024
1 parent a501c1a commit d39c6e8
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 7 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- Introduced a writing layer in native engines where relies on the writing interface to process IO. (#2241)[https://github.com/opensearch-project/k-NN/pull/2241]
- Allow method parameter override for training based indices (#2290) https://github.com/opensearch-project/k-NN/pull/2290]
- Optimizes lucene query execution to prevent unnecessary rewrites (#2305)[https://github.com/opensearch-project/k-NN/pull/2305]
- Add check to directly use ANN Search when filters match all docs. (#2320)[https://github.com/opensearch-project/k-NN/pull/2320]
### Bug Fixes
* Fixing the bug when a segment has no vector field present for disk based vector search (#2282)[https://github.com/opensearch-project/k-NN/pull/2282]
* Allow validation for non knn index only after 2.17.0 (#2315)[https://github.com/opensearch-project/k-NN/pull/2315]
Expand Down
8 changes: 1 addition & 7 deletions src/main/java/org/opensearch/knn/index/query/KNNWeight.java
Original file line number Diff line number Diff line change
Expand Up @@ -131,12 +131,6 @@ public PerLeafResult searchLeaf(LeafReaderContext context, int k) throws IOExcep
final BitSet filterBitSet = getFilteredDocsBitSet(context);
final int maxDoc = context.reader().maxDoc();
int cardinality = filterBitSet.cardinality();
/*
* If filters match all docs in this segment, then there is no need to do any extra step
* and should directly do ANN Search*/
if (cardinality == maxDoc){
return doANNSearch(context, filterBitSet, cardinality, k);
}
// We don't need to go to JNI layer if no documents are found which satisfy the filters
// We should give this condition a deeper look that where it should be placed. For now I feel this is a good
// place,
Expand All @@ -156,7 +150,7 @@ public PerLeafResult searchLeaf(LeafReaderContext context, int k) throws IOExcep
* If filters match all docs in this segment, then there is no need to do any extra step
* and should directly do ANN Search*/
if (filterWeight != null && cardinality == maxDoc) {
return doANNSearch(context, new FixedBitSet(0), 0, k);
return new PerLeafResult(filterBitSet, doANNSearch(context, filterBitSet, cardinality, k));
}
Map<Integer, Float> docIdsToScoreMap = doANNSearch(context, filterBitSet, cardinality, k);
// See whether we have to perform exact search based on approx search results
Expand Down

0 comments on commit d39c6e8

Please sign in to comment.