File tree Expand file tree Collapse file tree 2 files changed +21
-0
lines changed
main/java/org/opensearch/index/query/functionscore
test/java/org/opensearch/index/query/functionscore Expand file tree Collapse file tree 2 files changed +21
-0
lines changed Original file line number Diff line number Diff line change 32
32
33
33
package org .opensearch .index .query .functionscore ;
34
34
35
+ import org .apache .lucene .search .BooleanClause ;
35
36
import org .apache .lucene .search .MatchAllDocsQuery ;
36
37
import org .apache .lucene .search .Query ;
37
38
import org .opensearch .common .Nullable ;
52
53
import org .opensearch .index .query .MatchAllQueryBuilder ;
53
54
import org .opensearch .index .query .MatchNoneQueryBuilder ;
54
55
import org .opensearch .index .query .QueryBuilder ;
56
+ import org .opensearch .index .query .QueryBuilderVisitor ;
55
57
import org .opensearch .index .query .QueryRewriteContext ;
56
58
import org .opensearch .index .query .QueryShardContext ;
57
59
@@ -704,4 +706,12 @@ private static String parseFiltersAndFunctions(
704
706
}
705
707
return currentFieldName ;
706
708
}
709
+
710
+ @ Override
711
+ public void visit (QueryBuilderVisitor visitor ) {
712
+ visitor .accept (this );
713
+ if (query != null ) {
714
+ visitor .getChildVisitor (BooleanClause .Occur .MUST ).accept (query );
715
+ }
716
+ }
707
717
}
Original file line number Diff line number Diff line change 75
75
import org .hamcrest .Matcher ;
76
76
77
77
import java .io .IOException ;
78
+ import java .util .ArrayList ;
78
79
import java .util .Arrays ;
79
80
import java .util .Collection ;
80
81
import java .util .Collections ;
@@ -938,4 +939,14 @@ public void testMustRewrite() throws IOException {
938
939
e = expectThrows (IllegalStateException .class , () -> functionQueryBuilder2 .toQuery (context ));
939
940
assertEquals ("Rewrite first" , e .getMessage ());
940
941
}
942
+
943
+ public void testVisit () {
944
+ TermQueryBuilder termQueryBuilder = new TermQueryBuilder ("unmapped_field" , "foo" );
945
+ FunctionScoreQueryBuilder builder = new FunctionScoreQueryBuilder (termQueryBuilder );
946
+
947
+ List <QueryBuilder > visitedQueries = new ArrayList <>();
948
+ builder .visit (createTestVisitor (visitedQueries ));
949
+
950
+ assertEquals (2 , visitedQueries .size ());
951
+ }
941
952
}
You can’t perform that action at this time.
0 commit comments