add the search request to the search context

This commit is contained in:
Shay Banon 2011-11-13 12:48:17 +02:00
parent f4adff652c
commit a3978402e5
2 changed files with 20 additions and 25 deletions

View File

@ -421,7 +421,7 @@ public class SearchService extends AbstractLifecycleComponent<SearchService> {
SearchShardTarget shardTarget = new SearchShardTarget(clusterService.localNode().id(), request.index(), request.shardId());
Engine.Searcher engineSearcher = indexShard.searcher();
SearchContext context = new SearchContext(idGenerator.incrementAndGet(), shardTarget, request.searchType(), request.numberOfShards(), request.nowInMillis(), request.timeout(), request.types(), engineSearcher, indexService, indexShard, scriptService);
SearchContext context = new SearchContext(idGenerator.incrementAndGet(), request, shardTarget, engineSearcher, indexService, indexShard, scriptService);
SearchContext.setCurrent(context);
try {
context.scroll(request.scroll());

View File

@ -80,12 +80,12 @@ public class SearchContext implements Releasable {
private final long id;
private final InternalSearchRequest request;
private final SearchShardTarget shardTarget;
private SearchType searchType;
private final int numberOfShards;
private final Engine.Searcher engineSearcher;
private final ScriptService scriptService;
@ -102,10 +102,6 @@ public class SearchContext implements Releasable {
private final FetchSearchResult fetchResult;
private final long nowInMillis;
private final TimeValue timeout;
private float queryBoost = 1.0f;
@ -123,8 +119,6 @@ public class SearchContext implements Releasable {
private int size = -1;
private String[] types;
private Sort sort;
private Float minimumScore;
@ -163,15 +157,12 @@ public class SearchContext implements Releasable {
private Map<String, BlockJoinQuery> nestedQueries;
public SearchContext(long id, SearchShardTarget shardTarget, SearchType searchType, int numberOfShards, long nowInMillis, TimeValue timeout,
String[] types, Engine.Searcher engineSearcher, IndexService indexService, IndexShard indexShard, ScriptService scriptService) {
public SearchContext(long id, InternalSearchRequest request, SearchShardTarget shardTarget,
Engine.Searcher engineSearcher, IndexService indexService, IndexShard indexShard, ScriptService scriptService) {
this.id = id;
this.nowInMillis = nowInMillis;
this.searchType = searchType;
this.request = request;
this.searchType = request.searchType();
this.shardTarget = shardTarget;
this.numberOfShards = numberOfShards;
this.timeout = timeout;
this.types = types;
this.engineSearcher = engineSearcher;
this.scriptService = scriptService;
this.dfsResult = new DfsSearchResult(id, shardTarget);
@ -204,6 +195,10 @@ public class SearchContext implements Releasable {
return this.id;
}
public InternalSearchRequest request() {
return this.request;
}
public SearchType searchType() {
return this.searchType;
}
@ -218,15 +213,15 @@ public class SearchContext implements Releasable {
}
public int numberOfShards() {
return this.numberOfShards;
return request.numberOfShards();
}
public boolean hasTypes() {
return types != null && types.length > 0;
return request.types() != null && request.types().length > 0;
}
public String[] types() {
return types;
return request.types();
}
public float queryBoost() {
@ -239,7 +234,7 @@ public class SearchContext implements Releasable {
}
public long nowInMillis() {
return nowInMillis;
return request.nowInMillis();
}
public Scroll scroll() {
@ -320,7 +315,7 @@ public class SearchContext implements Releasable {
}
public TimeValue timeout() {
return timeout;
return request.timeout();
}
public SearchContext minimumScore(float minimumScore) {
@ -536,18 +531,18 @@ public class SearchContext implements Releasable {
}
public MapperService.SmartNameFieldMappers smartFieldMappers(String name) {
return mapperService().smartName(name, types);
return mapperService().smartName(name, request.types());
}
public FieldMappers smartNameFieldMappers(String name) {
return mapperService().smartNameFieldMappers(name, types);
return mapperService().smartNameFieldMappers(name, request.types());
}
public FieldMapper smartNameFieldMapper(String name) {
return mapperService().smartNameFieldMapper(name, types);
return mapperService().smartNameFieldMapper(name, request.types());
}
public MapperService.SmartNameObjectMapper smartNameObjectMapper(String name) {
return mapperService().smartNameObjectMapper(name, types);
return mapperService().smartNameObjectMapper(name, request.types());
}
}