diff options
Diffstat (limited to 'core/src/main/java/org/elasticsearch/search/internal/SearchContext.java')
-rw-r--r-- | core/src/main/java/org/elasticsearch/search/internal/SearchContext.java | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/core/src/main/java/org/elasticsearch/search/internal/SearchContext.java b/core/src/main/java/org/elasticsearch/search/internal/SearchContext.java index 76164b5c0f..a93cde1a8a 100644 --- a/core/src/main/java/org/elasticsearch/search/internal/SearchContext.java +++ b/core/src/main/java/org/elasticsearch/search/internal/SearchContext.java @@ -20,13 +20,12 @@ package org.elasticsearch.search.internal; import org.apache.lucene.search.Collector; +import org.apache.lucene.search.FieldDoc; import org.apache.lucene.search.Query; import org.apache.lucene.search.Sort; import org.apache.lucene.util.Counter; import org.elasticsearch.action.search.SearchType; import org.elasticsearch.cache.recycler.PageCacheRecycler; -import org.elasticsearch.common.DelegatingHasContextAndHeaders; -import org.elasticsearch.common.HasContextAndHeaders; import org.elasticsearch.common.Nullable; import org.elasticsearch.common.ParseFieldMatcher; import org.elasticsearch.common.lease.Releasable; @@ -66,7 +65,7 @@ import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicBoolean; -public abstract class SearchContext extends DelegatingHasContextAndHeaders implements Releasable { +public abstract class SearchContext implements Releasable { private static ThreadLocal<SearchContext> current = new ThreadLocal<>(); public final static int DEFAULT_TERMINATE_AFTER = 0; @@ -87,11 +86,11 @@ public abstract class SearchContext extends DelegatingHasContextAndHeaders imple private Map<Lifetime, List<Releasable>> clearables = null; private final AtomicBoolean closed = new AtomicBoolean(false); + private InnerHitsContext innerHitsContext; protected final ParseFieldMatcher parseFieldMatcher; - protected SearchContext(ParseFieldMatcher parseFieldMatcher, HasContextAndHeaders contextHeaders) { - super(contextHeaders); + protected SearchContext(ParseFieldMatcher parseFieldMatcher) { this.parseFieldMatcher = parseFieldMatcher; } @@ -170,9 +169,12 @@ public abstract class SearchContext extends DelegatingHasContextAndHeaders imple public abstract void highlight(SearchContextHighlight highlight); - public abstract void innerHits(InnerHitsContext innerHitsContext); - - public abstract InnerHitsContext innerHits(); + public InnerHitsContext innerHits() { + if (innerHitsContext == null) { + innerHitsContext = new InnerHitsContext(); + } + return innerHitsContext; + } public abstract SuggestionSearchContext suggest(); @@ -240,6 +242,10 @@ public abstract class SearchContext extends DelegatingHasContextAndHeaders imple public abstract boolean trackScores(); + public abstract SearchContext searchAfter(FieldDoc searchAfter); + + public abstract FieldDoc searchAfter(); + public abstract SearchContext parsedPostFilter(ParsedQuery postFilter); public abstract ParsedQuery parsedPostFilter(); |