Skip to content

Commit b478e26

Browse files
committed
moved originalQueryBuilder to Search instead of Highlight context
1 parent cd05e9e commit b478e26

File tree

9 files changed

+24
-14
lines changed

9 files changed

+24
-14
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(), null);
90+
SearchHighlightContext highlight = new SearchHighlightContext(fetchContext.highlight().fields());
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(), null));
48+
Mockito.when(fetchContext.highlight()).thenReturn(new SearchHighlightContext(Collections.emptyList()));
4949
Mockito.when(fetchContext.query()).thenReturn(new MatchAllDocsQuery());
5050

5151
assertNull(subFetchPhase.getProcessor(fetchContext));

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ final class DefaultSearchContext extends SearchContext {
146146
this.shardTarget = shardTarget;
147147
this.indexService = readerContext.indexService();
148148
this.indexShard = readerContext.indexShard();
149+
this.originalQueryBuilder = request.source().query();
149150

150151
Engine.Searcher engineSearcher = readerContext.acquireSearcher("search");
151152
this.searcher = new ContextIndexSearcher(

server/src/main/java/org/elasticsearch/search/fetch/FetchContext.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import org.elasticsearch.index.mapper.SourceFieldMapper;
1313
import org.elasticsearch.index.mapper.SourceLoader;
1414
import org.elasticsearch.index.query.ParsedQuery;
15+
import org.elasticsearch.index.query.QueryBuilder;
1516
import org.elasticsearch.index.query.SearchExecutionContext;
1617
import org.elasticsearch.search.SearchExtBuilder;
1718
import org.elasticsearch.search.fetch.subphase.FetchDocValuesContext;
@@ -106,6 +107,13 @@ public Query query() {
106107
return searchContext.query();
107108
}
108109

110+
/**
111+
* The original query, not rewritten.
112+
*/
113+
public QueryBuilder originalQueryBuilder() {
114+
return searchContext.originalQueryBuilder();
115+
}
116+
109117
/**
110118
* The original query in its rewritten form.
111119
*/

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ public SearchHighlightContext build(SearchExecutionContext context, QueryBuilder
303303
new SearchHighlightContext.Field(field.name(), fieldOptionsBuilder.merge(globalOptionsBuilder.build()).build())
304304
);
305305
}
306-
return new SearchHighlightContext(fieldOptions, originalQuery);
306+
return new SearchHighlightContext(fieldOptions);
307307
}
308308

309309
/**

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ private FieldContext contextBuilders(
141141
sourceRequired = true;
142142
}
143143

144-
Query highlightQuery = getHighlightQuery(highlightContext, field, fieldType);
144+
Query highlightQuery = getHighlightQuery(context, field, fieldType);
145145

146146
builders.put(
147147
fieldName,
@@ -162,12 +162,12 @@ private FieldContext contextBuilders(
162162
}
163163

164164
private Query getHighlightQuery(
165-
SearchHighlightContext highlightContext,
165+
FetchContext context,
166166
SearchHighlightContext.Field field,
167167
MappedFieldType fieldType
168168
) {
169169
if (fieldType instanceof ConstantFieldType) {
170-
QueryBuilder originalQuery = highlightContext.originalQuery();
170+
QueryBuilder originalQuery = context.originalQueryBuilder();
171171
if (originalQuery != null) {
172172
return originalQuery.toHighlightQuery(fieldType.name());
173173
}

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

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
import org.apache.lucene.search.Query;
1212
import org.elasticsearch.common.util.Maps;
13-
import org.elasticsearch.index.query.QueryBuilder;
1413
import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder.BoundaryScannerType;
1514

1615
import java.util.Arrays;
@@ -22,25 +21,19 @@
2221

2322
public class SearchHighlightContext {
2423
private final Map<String, Field> fields;
25-
private final QueryBuilder originalQuery;
2624

27-
public SearchHighlightContext(Collection<Field> fields, QueryBuilder originalQuery) {
25+
public SearchHighlightContext(Collection<Field> fields) {
2826
assert fields != null;
2927
this.fields = Maps.newLinkedHashMapWithExpectedSize(fields.size());
3028
for (Field field : fields) {
3129
this.fields.put(field.field, field);
3230
}
33-
this.originalQuery = originalQuery;
3431
}
3532

3633
public Collection<Field> fields() {
3734
return fields.values();
3835
}
3936

40-
public QueryBuilder originalQuery() {
41-
return originalQuery;
42-
}
43-
4437
public static class Field {
4538
private final String field;
4639
private final FieldOptions fieldOptions;

server/src/main/java/org/elasticsearch/search/internal/SearchContext.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import org.elasticsearch.index.cache.bitset.BitsetFilterCache;
2020
import org.elasticsearch.index.mapper.SourceLoader;
2121
import org.elasticsearch.index.query.ParsedQuery;
22+
import org.elasticsearch.index.query.QueryBuilder;
2223
import org.elasticsearch.index.query.QueryShardException;
2324
import org.elasticsearch.index.query.SearchExecutionContext;
2425
import org.elasticsearch.index.shard.IndexShard;
@@ -70,6 +71,8 @@ public abstract class SearchContext implements Releasable {
7071

7172
private Query rewriteQuery;
7273

74+
protected QueryBuilder originalQueryBuilder;
75+
7376
protected SearchContext() {}
7477

7578
public abstract void setTask(SearchShardTask task);
@@ -281,6 +284,10 @@ public Query rewrittenQuery() {
281284
return rewriteQuery;
282285
}
283286

287+
public QueryBuilder originalQueryBuilder() {
288+
return originalQueryBuilder;
289+
}
290+
284291
public abstract int from();
285292

286293
public abstract SearchContext from(int from);

test/framework/src/main/java/org/elasticsearch/test/TestSearchContext.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ public TestSearchContext(IndexService indexService) {
8888
this.indexShard = indexService.getShardOrNull(0);
8989
searchExecutionContext = indexService.newSearchExecutionContext(0, 0, null, () -> 0L, null, emptyMap());
9090
this.request = new ShardSearchRequest(indexShard.shardId(), 0L, AliasFilter.EMPTY);
91+
this.originalQueryBuilder = request.source().query();
9192
}
9293

9394
public TestSearchContext(SearchExecutionContext searchExecutionContext) {

0 commit comments

Comments
 (0)