summaryrefslogtreecommitdiff
path: root/core/src/main/java/org/elasticsearch/search/internal/SearchContext.java
diff options
context:
space:
mode:
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.java22
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();