Skip to content

Commit 55c5cc7

Browse files
committed
handle nested fields
1 parent d942f5a commit 55c5cc7

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

server/src/main/java/org/elasticsearch/index/mapper/vectors/DenseVectorFieldMapper.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import org.apache.lucene.search.Query;
3737
import org.apache.lucene.search.join.BitSetProducer;
3838
import org.apache.lucene.search.join.ScoreMode;
39+
import org.apache.lucene.search.join.ToChildBlockJoinQuery;
3940
import org.apache.lucene.search.join.ToParentBlockJoinQuery;
4041
import org.apache.lucene.search.knn.KnnSearchStrategy;
4142
import org.apache.lucene.util.BitUtil;
@@ -2551,7 +2552,7 @@ private Query createKnnBitQuery(
25512552
knnQuery = filter == null
25522553
? createExactKnnBitQuery(queryVector)
25532554
: new BooleanQuery.Builder().add(createExactKnnBitQuery(queryVector), BooleanClause.Occur.SHOULD)
2554-
.add(filter, BooleanClause.Occur.FILTER)
2555+
.add(parentFilter != null ? new ToChildBlockJoinQuery(filter, parentFilter) : filter, BooleanClause.Occur.FILTER)
25552556
.build();
25562557
if (parentFilter != null) {
25572558
knnQuery = new ToParentBlockJoinQuery(knnQuery, parentFilter, ScoreMode.Max);
@@ -2592,7 +2593,7 @@ private Query createKnnByteQuery(
25922593
knnQuery = filter == null
25932594
? createExactKnnByteQuery(queryVector)
25942595
: new BooleanQuery.Builder().add(createExactKnnByteQuery(queryVector), BooleanClause.Occur.SHOULD)
2595-
.add(filter, BooleanClause.Occur.FILTER)
2596+
.add(parentFilter != null ? new ToChildBlockJoinQuery(filter, parentFilter) : filter, BooleanClause.Occur.FILTER)
25962597
.build();
25972598
if (parentFilter != null) {
25982599
knnQuery = new ToParentBlockJoinQuery(knnQuery, parentFilter, ScoreMode.Max);
@@ -2658,7 +2659,7 @@ && isNotUnitVector(squaredMagnitude)) {
26582659
knnQuery = filter == null
26592660
? createExactKnnFloatQuery(queryVector)
26602661
: new BooleanQuery.Builder().add(createExactKnnFloatQuery(queryVector), BooleanClause.Occur.SHOULD)
2661-
.add(filter, BooleanClause.Occur.FILTER)
2662+
.add(parentFilter != null ? new ToChildBlockJoinQuery(filter, parentFilter) : filter, BooleanClause.Occur.FILTER)
26622663
.build();
26632664
if (parentFilter != null) {
26642665
knnQuery = new ToParentBlockJoinQuery(knnQuery, parentFilter, ScoreMode.Max);

0 commit comments

Comments
 (0)