Package com.yahoo.search.dispatch
Class SearchInvoker
- java.lang.Object
-
- com.yahoo.search.dispatch.CloseableInvoker
-
- com.yahoo.search.dispatch.SearchInvoker
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
- Direct Known Subclasses:
InterleavedSearchInvoker
,RpcSearchInvoker
,SearchErrorInvoker
public abstract class SearchInvoker extends CloseableInvoker
SearchInvoker encapsulates an allocated connection for running a single search query. The invocation object can be stateful and should not be reused.- Author:
- ollivir
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
SearchInvoker(Optional<Node> node)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected Optional<Integer>
distributionKey()
protected InvokerResult
errorResult(Query query, ErrorMessage errorMessage)
protected abstract InvokerResult
getSearchResult(Execution execution)
protected void
responseAvailable()
Result
search(Query query, Execution execution)
Retrieve the hits for the givenQuery
.protected abstract Object
sendSearchRequest(Query query, Object context)
protected void
setMonitor(ResponseMonitor<SearchInvoker> monitor)
-
Methods inherited from class com.yahoo.search.dispatch.CloseableInvoker
close, release, setFinalStatus, teardown
-
-
-
-
Method Detail
-
search
public Result search(Query query, Execution execution) throws IOException
Retrieve the hits for the givenQuery
. If the search is run on multiple content nodes, the providedExecution
may be used to retrieve document summaries required for correct result windowing.- Throws:
IOException
-
sendSearchRequest
protected abstract Object sendSearchRequest(Query query, Object context) throws IOException
- Parameters:
query
- the query to sendcontext
- a context object that can be used to pass context among different invokers, e.g for reuse of preserialized data.- Returns:
- an object that can be passed to the next invocation of sendSearchRequest
- Throws:
IOException
-
getSearchResult
protected abstract InvokerResult getSearchResult(Execution execution) throws IOException
- Throws:
IOException
-
setMonitor
protected void setMonitor(ResponseMonitor<SearchInvoker> monitor)
-
responseAvailable
protected void responseAvailable()
-
errorResult
protected InvokerResult errorResult(Query query, ErrorMessage errorMessage)
-
-