1414import org .elasticsearch .index .query .IdsQueryBuilder ;
1515import org .elasticsearch .index .query .MatchAllQueryBuilder ;
1616import org .elasticsearch .index .query .MatchNoneQueryBuilder ;
17+ import org .elasticsearch .index .query .MatchQueryBuilder ;
1718import org .elasticsearch .index .query .PrefixQueryBuilder ;
1819import org .elasticsearch .index .query .QueryBuilder ;
1920import org .elasticsearch .index .query .QueryBuilders ;
@@ -111,7 +112,8 @@ private static QueryBuilder doProcess(QueryBuilder qb, Consumer<String> fieldNam
111112 if (qb instanceof final BoolQueryBuilder query ) {
112113 final BoolQueryBuilder newQuery = QueryBuilders .boolQuery ()
113114 .minimumShouldMatch (query .minimumShouldMatch ())
114- .adjustPureNegative (query .adjustPureNegative ());
115+ .adjustPureNegative (query .adjustPureNegative ())
116+ .boost (query .boost ());
115117 query .must ().stream ().map (q -> ApiKeyBoolQueryBuilder .doProcess (q , fieldNameVisitor )).forEach (newQuery ::must );
116118 query .should ().stream ().map (q -> ApiKeyBoolQueryBuilder .doProcess (q , fieldNameVisitor )).forEach (newQuery ::should );
117119 query .mustNot ().stream ().map (q -> ApiKeyBoolQueryBuilder .doProcess (q , fieldNameVisitor )).forEach (newQuery ::mustNot );
@@ -124,28 +126,63 @@ private static QueryBuilder doProcess(QueryBuilder qb, Consumer<String> fieldNam
124126 } else if (qb instanceof final TermQueryBuilder query ) {
125127 final String translatedFieldName = ApiKeyFieldNameTranslators .translate (query .fieldName ());
126128 fieldNameVisitor .accept (translatedFieldName );
127- return QueryBuilders .termQuery (translatedFieldName , query .value ()).caseInsensitive (query .caseInsensitive ());
129+ return QueryBuilders .termQuery (translatedFieldName , query .value ())
130+ .caseInsensitive (query .caseInsensitive ())
131+ .boost (query .boost ());
128132 } else if (qb instanceof final ExistsQueryBuilder query ) {
129133 final String translatedFieldName = ApiKeyFieldNameTranslators .translate (query .fieldName ());
130134 fieldNameVisitor .accept (translatedFieldName );
131- return QueryBuilders .existsQuery (translatedFieldName );
135+ return QueryBuilders .existsQuery (translatedFieldName ). boost ( query . boost ()) ;
132136 } else if (qb instanceof final TermsQueryBuilder query ) {
133137 if (query .termsLookup () != null ) {
134138 throw new IllegalArgumentException ("terms query with terms lookup is not supported for API Key query" );
135139 }
136140 final String translatedFieldName = ApiKeyFieldNameTranslators .translate (query .fieldName ());
137141 fieldNameVisitor .accept (translatedFieldName );
138- return QueryBuilders .termsQuery (translatedFieldName , query .getValues ());
142+ return QueryBuilders .termsQuery (translatedFieldName , query .getValues ()). boost ( query . boost ()) ;
139143 } else if (qb instanceof final PrefixQueryBuilder query ) {
140144 final String translatedFieldName = ApiKeyFieldNameTranslators .translate (query .fieldName ());
141145 fieldNameVisitor .accept (translatedFieldName );
142- return QueryBuilders .prefixQuery (translatedFieldName , query .value ()).caseInsensitive (query .caseInsensitive ());
146+ return QueryBuilders .prefixQuery (translatedFieldName , query .value ())
147+ .caseInsensitive (query .caseInsensitive ())
148+ .rewrite (query .rewrite ())
149+ .boost (query .boost ());
143150 } else if (qb instanceof final WildcardQueryBuilder query ) {
144151 final String translatedFieldName = ApiKeyFieldNameTranslators .translate (query .fieldName ());
145152 fieldNameVisitor .accept (translatedFieldName );
146153 return QueryBuilders .wildcardQuery (translatedFieldName , query .value ())
147154 .caseInsensitive (query .caseInsensitive ())
148- .rewrite (query .rewrite ());
155+ .rewrite (query .rewrite ())
156+ .boost (query .boost ());
157+ } else if (qb instanceof final MatchQueryBuilder query ) {
158+ final String translatedFieldName = ApiKeyFieldNameTranslators .translate (query .fieldName ());
159+ fieldNameVisitor .accept (translatedFieldName );
160+ final MatchQueryBuilder matchQueryBuilder = QueryBuilders .matchQuery (translatedFieldName , query .value ());
161+ if (query .operator () != null ) {
162+ matchQueryBuilder .operator (query .operator ());
163+ }
164+ if (query .analyzer () != null ) {
165+ matchQueryBuilder .analyzer (query .analyzer ());
166+ }
167+ if (query .fuzziness () != null ) {
168+ matchQueryBuilder .fuzziness (query .fuzziness ());
169+ }
170+ if (query .minimumShouldMatch () != null ) {
171+ matchQueryBuilder .minimumShouldMatch (query .minimumShouldMatch ());
172+ }
173+ if (query .fuzzyRewrite () != null ) {
174+ matchQueryBuilder .fuzzyRewrite (query .fuzzyRewrite ());
175+ }
176+ if (query .zeroTermsQuery () != null ) {
177+ matchQueryBuilder .zeroTermsQuery (query .zeroTermsQuery ());
178+ }
179+ matchQueryBuilder .prefixLength (query .prefixLength ())
180+ .maxExpansions (query .maxExpansions ())
181+ .fuzzyTranspositions (query .fuzzyTranspositions ())
182+ .lenient (query .lenient ())
183+ .autoGenerateSynonymsPhraseQuery (query .autoGenerateSynonymsPhraseQuery ())
184+ .boost (query .boost ());
185+ return matchQueryBuilder ;
149186 } else if (qb instanceof final RangeQueryBuilder query ) {
150187 if (query .relation () != null ) {
151188 throw new IllegalArgumentException ("range query with relation is not supported for API Key query" );
0 commit comments