Skip to content

Commit 291c912

Browse files
committed
originalQuery is now final
1 parent 54758e7 commit 291c912

File tree

9 files changed

+14
-18
lines changed

9 files changed

+14
-18
lines changed

modules/percolator/src/main/java/org/elasticsearch/percolator/PercolatorHighlightSubFetchPhase.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ public void process(HitContext hit) throws IOException {
8787
continue;
8888
}
8989

90-
SearchHighlightContext highlight = new SearchHighlightContext(fetchContext.highlight().fields());
90+
SearchHighlightContext highlight = new SearchHighlightContext(fetchContext.highlight().fields(), null);
9191
FetchSubPhaseProcessor processor = highlightPhase.getProcessor(fetchContext, highlight, query);
9292
StoredFieldLoader storedFields = StoredFieldLoader.fromSpec(processor.storedFieldsSpec());
9393
LeafStoredFieldLoader leafStoredFields = storedFields.getLoader(percolatorLeafReaderContext, null);

modules/percolator/src/test/java/org/elasticsearch/percolator/PercolatorHighlightSubFetchPhaseTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public void testHitsExecutionNeeded() {
4545
);
4646
PercolatorHighlightSubFetchPhase subFetchPhase = new PercolatorHighlightSubFetchPhase(emptyMap());
4747
FetchContext fetchContext = mock(FetchContext.class);
48-
Mockito.when(fetchContext.highlight()).thenReturn(new SearchHighlightContext(Collections.emptyList()));
48+
Mockito.when(fetchContext.highlight()).thenReturn(new SearchHighlightContext(Collections.emptyList(), null));
4949
Mockito.when(fetchContext.query()).thenReturn(new MatchAllDocsQuery());
5050

5151
assertNull(subFetchPhase.getProcessor(fetchContext));

server/src/main/java/org/elasticsearch/index/query/InnerHitContextBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ protected void setupInnerHitsContext(
118118
}
119119
}
120120
if (innerHitBuilder.getHighlightBuilder() != null) {
121-
innerHitsContext.highlight(innerHitBuilder.getHighlightBuilder().build(searchExecutionContext));
121+
innerHitsContext.highlight(innerHitBuilder.getHighlightBuilder().build(searchExecutionContext, query));
122122
}
123123
ParsedQuery parsedQuery = new ParsedQuery(query.toQuery(searchExecutionContext), searchExecutionContext.copyNamedQueries());
124124
innerHitsContext.parsedQuery(parsedQuery);

server/src/main/java/org/elasticsearch/search/SearchService.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,6 @@
9090
import org.elasticsearch.search.fetch.subphase.FetchFieldsContext;
9191
import org.elasticsearch.search.fetch.subphase.ScriptFieldsContext.ScriptField;
9292
import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder;
93-
import org.elasticsearch.search.fetch.subphase.highlight.SearchHighlightContext;
9493
import org.elasticsearch.search.internal.AliasFilter;
9594
import org.elasticsearch.search.internal.InternalScrollSearchRequest;
9695
import org.elasticsearch.search.internal.LegacyReaderContext;
@@ -1285,9 +1284,7 @@ private void parseSource(DefaultSearchContext context, SearchSourceBuilder sourc
12851284
if (source.highlighter() != null) {
12861285
HighlightBuilder highlightBuilder = source.highlighter();
12871286
try {
1288-
SearchHighlightContext searchHighlightContext = highlightBuilder.build(searchExecutionContext);
1289-
searchHighlightContext.setOriginalQuery(source.query());
1290-
context.highlight(searchHighlightContext);
1287+
context.highlight(highlightBuilder.build(searchExecutionContext, source.query()));
12911288
} catch (IOException e) {
12921289
throw new SearchException(shardTarget, "failed to create SearchContextHighlighter", e);
12931290
}

server/src/main/java/org/elasticsearch/search/aggregations/metrics/TopHitsAggregatorFactory.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,9 @@ public Aggregator createInternal(Aggregator parent, CardinalityUpperBound cardin
118118
subSearchContext.fetchSourceContext(fetchSourceContext);
119119
}
120120
if (highlightBuilder != null) {
121-
subSearchContext.highlight(highlightBuilder.build(subSearchContext.getSearchExecutionContext()));
121+
subSearchContext.highlight(
122+
highlightBuilder.build(subSearchContext.getSearchExecutionContext(), highlightBuilder.highlightQuery())
123+
);
122124
}
123125
return new TopHitsAggregator(subSearchContext, name, context, parent, metadata);
124126
}

server/src/main/java/org/elasticsearch/search/fetch/subphase/highlight/HighlightBuilder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@ public static HighlightBuilder fromXContent(XContentParser p) {
279279
return PARSER.apply(p, new HighlightBuilder());
280280
}
281281

282-
public SearchHighlightContext build(SearchExecutionContext context) throws IOException {
282+
public SearchHighlightContext build(SearchExecutionContext context, QueryBuilder originalQuery) throws IOException {
283283
// create template global options that are later merged with any partial field options
284284
final SearchHighlightContext.FieldOptions.Builder globalOptionsBuilder = new SearchHighlightContext.FieldOptions.Builder();
285285
globalOptionsBuilder.encoder(this.encoder);
@@ -303,7 +303,7 @@ public SearchHighlightContext build(SearchExecutionContext context) throws IOExc
303303
new SearchHighlightContext.Field(field.name(), fieldOptionsBuilder.merge(globalOptionsBuilder.build()).build())
304304
);
305305
}
306-
return new SearchHighlightContext(fieldOptions);
306+
return new SearchHighlightContext(fieldOptions, originalQuery);
307307
}
308308

309309
/**

server/src/main/java/org/elasticsearch/search/fetch/subphase/highlight/SearchHighlightContext.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,15 @@
2222

2323
public class SearchHighlightContext {
2424
private final Map<String, Field> fields;
25-
private QueryBuilder originalQuery;
25+
private final QueryBuilder originalQuery;
2626

27-
public SearchHighlightContext(Collection<Field> fields) {
27+
public SearchHighlightContext(Collection<Field> fields, QueryBuilder originalQuery) {
2828
assert fields != null;
2929
this.fields = Maps.newLinkedHashMapWithExpectedSize(fields.size());
3030
for (Field field : fields) {
3131
this.fields.put(field.field, field);
3232
}
33+
this.originalQuery = originalQuery;
3334
}
3435

3536
public Collection<Field> fields() {
@@ -40,10 +41,6 @@ public QueryBuilder originalQuery() {
4041
return originalQuery;
4142
}
4243

43-
public void setOriginalQuery(QueryBuilder originalQuery) {
44-
this.originalQuery = originalQuery;
45-
}
46-
4744
public static class Field {
4845
private final String field;
4946
private final FieldOptions fieldOptions;

server/src/test/java/org/elasticsearch/search/fetch/subphase/highlight/HighlightBuilderTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,7 @@ public MappedFieldType getFieldType(String name) {
328328
for (int runs = 0; runs < NUMBER_OF_TESTBUILDERS; runs++) {
329329
HighlightBuilder highlightBuilder = randomHighlighterBuilder();
330330
highlightBuilder = Rewriteable.rewrite(highlightBuilder, mockContext);
331-
SearchHighlightContext highlight = highlightBuilder.build(mockContext);
331+
SearchHighlightContext highlight = highlightBuilder.build(mockContext, highlightBuilder.highlightQuery);
332332
for (SearchHighlightContext.Field field : highlight.fields()) {
333333
String encoder = highlightBuilder.encoder() != null ? highlightBuilder.encoder() : HighlightBuilder.DEFAULT_ENCODER;
334334
assertEquals(encoder, field.fieldOptions().encoder());

test/framework/src/main/java/org/elasticsearch/search/fetch/HighlighterTestCase.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ protected static void assertHighlights(Map<String, HighlightField> highlights, S
109109

110110
private static FetchContext fetchContext(SearchExecutionContext context, SearchSourceBuilder search) throws IOException {
111111
FetchContext fetchContext = mock(FetchContext.class);
112-
when(fetchContext.highlight()).thenReturn(search.highlighter().build(context));
112+
when(fetchContext.highlight()).thenReturn(search.highlighter().build(context, search.query()));
113113
when(fetchContext.parsedQuery()).thenReturn(new ParsedQuery(search.query().toQuery(context)));
114114
when(fetchContext.getSearchExecutionContext()).thenReturn(context);
115115
when(fetchContext.sourceLoader()).thenReturn(context.newSourceLoader(false));

0 commit comments

Comments
 (0)