@@ -83,27 +83,27 @@ public DerivedFieldValueFetcher valueFetcher(QueryShardContext context, SearchLo
83
83
if (format != null ) {
84
84
throw new IllegalArgumentException ("Field [" + name () + "] of type [" + typeName () + "] doesn't support formats." );
85
85
}
86
- return new DerivedFieldValueFetcher (getDerivedFieldLeafFactory (context ));
86
+ return new DerivedFieldValueFetcher (getDerivedFieldLeafFactory (context , searchLookup ));
87
87
}
88
88
89
89
@ Override
90
90
public Query termQuery (Object value , QueryShardContext context ) {
91
91
Query query = typeFieldMapper .mappedFieldType .termQuery (value , context );
92
- DerivedFieldValueFetcher valueFetcher = new DerivedFieldValueFetcher ( getDerivedFieldLeafFactory ( context ) );
92
+ DerivedFieldValueFetcher valueFetcher = valueFetcher ( context , context . lookup (), null );
93
93
return new DerivedFieldQuery (query , valueFetcher , context .lookup (), indexableFieldGenerator , getIndexAnalyzer ());
94
94
}
95
95
96
96
@ Override
97
97
public Query termQueryCaseInsensitive (Object value , @ Nullable QueryShardContext context ) {
98
98
Query query = typeFieldMapper .mappedFieldType .termQueryCaseInsensitive (value , context );
99
- DerivedFieldValueFetcher valueFetcher = new DerivedFieldValueFetcher ( getDerivedFieldLeafFactory ( context ) );
99
+ DerivedFieldValueFetcher valueFetcher = valueFetcher ( context , context . lookup (), null );
100
100
return new DerivedFieldQuery (query , valueFetcher , context .lookup (), indexableFieldGenerator , getIndexAnalyzer ());
101
101
}
102
102
103
103
@ Override
104
104
public Query termsQuery (List <?> values , @ Nullable QueryShardContext context ) {
105
105
Query query = typeFieldMapper .mappedFieldType .termsQuery (values , context );
106
- DerivedFieldValueFetcher valueFetcher = new DerivedFieldValueFetcher ( getDerivedFieldLeafFactory ( context ) );
106
+ DerivedFieldValueFetcher valueFetcher = valueFetcher ( context , context . lookup (), null );
107
107
return new DerivedFieldQuery (query , valueFetcher , context .lookup (), indexableFieldGenerator , getIndexAnalyzer ());
108
108
}
109
109
@@ -128,7 +128,7 @@ public Query rangeQuery(
128
128
parser ,
129
129
context
130
130
);
131
- DerivedFieldValueFetcher valueFetcher = new DerivedFieldValueFetcher ( getDerivedFieldLeafFactory ( context ) );
131
+ DerivedFieldValueFetcher valueFetcher = valueFetcher ( context , context . lookup (), null );
132
132
return new DerivedFieldQuery (query , valueFetcher , context .lookup (), indexableFieldGenerator , getIndexAnalyzer ());
133
133
}
134
134
@@ -142,7 +142,7 @@ public Query fuzzyQuery(
142
142
QueryShardContext context
143
143
) {
144
144
Query query = typeFieldMapper .mappedFieldType .fuzzyQuery (value , fuzziness , prefixLength , maxExpansions , transpositions , context );
145
- DerivedFieldValueFetcher valueFetcher = new DerivedFieldValueFetcher ( getDerivedFieldLeafFactory ( context ) );
145
+ DerivedFieldValueFetcher valueFetcher = valueFetcher ( context , context . lookup (), null );
146
146
return new DerivedFieldQuery (query , valueFetcher , context .lookup (), indexableFieldGenerator , getIndexAnalyzer ());
147
147
}
148
148
@@ -165,7 +165,7 @@ public Query fuzzyQuery(
165
165
method ,
166
166
context
167
167
);
168
- DerivedFieldValueFetcher valueFetcher = new DerivedFieldValueFetcher ( getDerivedFieldLeafFactory ( context ) );
168
+ DerivedFieldValueFetcher valueFetcher = valueFetcher ( context , context . lookup (), null );
169
169
return new DerivedFieldQuery (query , valueFetcher , context .lookup (), indexableFieldGenerator , getIndexAnalyzer ());
170
170
}
171
171
@@ -177,7 +177,7 @@ public Query prefixQuery(
177
177
QueryShardContext context
178
178
) {
179
179
Query query = typeFieldMapper .mappedFieldType .prefixQuery (value , method , caseInsensitive , context );
180
- DerivedFieldValueFetcher valueFetcher = new DerivedFieldValueFetcher ( getDerivedFieldLeafFactory ( context ) );
180
+ DerivedFieldValueFetcher valueFetcher = valueFetcher ( context , context . lookup (), null );
181
181
return new DerivedFieldQuery (query , valueFetcher , context .lookup (), indexableFieldGenerator , getIndexAnalyzer ());
182
182
}
183
183
@@ -189,14 +189,14 @@ public Query wildcardQuery(
189
189
QueryShardContext context
190
190
) {
191
191
Query query = typeFieldMapper .mappedFieldType .wildcardQuery (value , method , caseInsensitive , context );
192
- DerivedFieldValueFetcher valueFetcher = new DerivedFieldValueFetcher ( getDerivedFieldLeafFactory ( context ) );
192
+ DerivedFieldValueFetcher valueFetcher = valueFetcher ( context , context . lookup (), null );
193
193
return new DerivedFieldQuery (query , valueFetcher , context .lookup (), indexableFieldGenerator , getIndexAnalyzer ());
194
194
}
195
195
196
196
@ Override
197
197
public Query normalizedWildcardQuery (String value , @ Nullable MultiTermQuery .RewriteMethod method , QueryShardContext context ) {
198
198
Query query = typeFieldMapper .mappedFieldType .normalizedWildcardQuery (value , method , context );
199
- DerivedFieldValueFetcher valueFetcher = new DerivedFieldValueFetcher ( getDerivedFieldLeafFactory ( context ) );
199
+ DerivedFieldValueFetcher valueFetcher = valueFetcher ( context , context . lookup (), null );
200
200
return new DerivedFieldQuery (query , valueFetcher , context .lookup (), indexableFieldGenerator , getIndexAnalyzer ());
201
201
}
202
202
@@ -210,29 +210,29 @@ public Query regexpQuery(
210
210
QueryShardContext context
211
211
) {
212
212
Query query = typeFieldMapper .mappedFieldType .regexpQuery (value , syntaxFlags , matchFlags , maxDeterminizedStates , method , context );
213
- DerivedFieldValueFetcher valueFetcher = new DerivedFieldValueFetcher ( getDerivedFieldLeafFactory ( context ) );
213
+ DerivedFieldValueFetcher valueFetcher = valueFetcher ( context , context . lookup (), null );
214
214
return new DerivedFieldQuery (query , valueFetcher , context .lookup (), indexableFieldGenerator , getIndexAnalyzer ());
215
215
}
216
216
217
217
@ Override
218
218
public Query phraseQuery (TokenStream stream , int slop , boolean enablePositionIncrements , QueryShardContext context ) throws IOException {
219
219
Query query = typeFieldMapper .mappedFieldType .phraseQuery (stream , slop , enablePositionIncrements , context );
220
- DerivedFieldValueFetcher valueFetcher = new DerivedFieldValueFetcher ( getDerivedFieldLeafFactory ( context ) );
220
+ DerivedFieldValueFetcher valueFetcher = valueFetcher ( context , context . lookup (), null );
221
221
return new DerivedFieldQuery (query , valueFetcher , context .lookup (), indexableFieldGenerator , getIndexAnalyzer ());
222
222
}
223
223
224
224
@ Override
225
225
public Query multiPhraseQuery (TokenStream stream , int slop , boolean enablePositionIncrements , QueryShardContext context )
226
226
throws IOException {
227
227
Query query = typeFieldMapper .mappedFieldType .multiPhraseQuery (stream , slop , enablePositionIncrements , context );
228
- DerivedFieldValueFetcher valueFetcher = new DerivedFieldValueFetcher ( getDerivedFieldLeafFactory ( context ) );
228
+ DerivedFieldValueFetcher valueFetcher = valueFetcher ( context , context . lookup (), null );
229
229
return new DerivedFieldQuery (query , valueFetcher , context .lookup (), indexableFieldGenerator , getIndexAnalyzer ());
230
230
}
231
231
232
232
@ Override
233
233
public Query phrasePrefixQuery (TokenStream stream , int slop , int maxExpansions , QueryShardContext context ) throws IOException {
234
234
Query query = typeFieldMapper .mappedFieldType .phrasePrefixQuery (stream , slop , maxExpansions , context );
235
- DerivedFieldValueFetcher valueFetcher = new DerivedFieldValueFetcher ( getDerivedFieldLeafFactory ( context ) );
235
+ DerivedFieldValueFetcher valueFetcher = valueFetcher ( context , context . lookup (), null );
236
236
return new DerivedFieldQuery (query , valueFetcher , context .lookup (), indexableFieldGenerator , getIndexAnalyzer ());
237
237
}
238
238
@@ -246,7 +246,7 @@ public SpanQuery spanPrefixQuery(String value, SpanMultiTermQueryWrapper.SpanRew
246
246
@ Override
247
247
public Query distanceFeatureQuery (Object origin , String pivot , float boost , QueryShardContext context ) {
248
248
Query query = typeFieldMapper .mappedFieldType .distanceFeatureQuery (origin , pivot , boost , context );
249
- DerivedFieldValueFetcher valueFetcher = new DerivedFieldValueFetcher ( getDerivedFieldLeafFactory ( context ) );
249
+ DerivedFieldValueFetcher valueFetcher = valueFetcher ( context , context . lookup (), null );
250
250
return new DerivedFieldQuery (query , valueFetcher , context .lookup (), indexableFieldGenerator , getIndexAnalyzer ());
251
251
}
252
252
@@ -260,7 +260,7 @@ public boolean isAggregatable() {
260
260
return false ;
261
261
}
262
262
263
- private DerivedFieldScript .LeafFactory getDerivedFieldLeafFactory (QueryShardContext context ) {
263
+ private DerivedFieldScript .LeafFactory getDerivedFieldLeafFactory (QueryShardContext context , SearchLookup searchLookup ) {
264
264
if (!context .documentMapper ("" ).sourceMapper ().enabled ()) {
265
265
throw new IllegalArgumentException (
266
266
"DerivedFieldQuery error: unable to fetch fields from _source field: _source is disabled in the mappings "
@@ -270,6 +270,6 @@ private DerivedFieldScript.LeafFactory getDerivedFieldLeafFactory(QueryShardCont
270
270
);
271
271
}
272
272
DerivedFieldScript .Factory factory = context .compile (derivedField .getScript (), DerivedFieldScript .CONTEXT );
273
- return factory .newFactory (derivedField .getScript ().getParams (), context . lookup () );
273
+ return factory .newFactory (derivedField .getScript ().getParams (), searchLookup );
274
274
}
275
275
}
0 commit comments