|
@@ -23,7 +23,6 @@ import org.elasticsearch.action.ActionListener;
|
|
|
import org.elasticsearch.action.ActionListenerResponseHandler;
|
|
|
import org.elasticsearch.action.IndicesRequest;
|
|
|
import org.elasticsearch.action.OriginalIndices;
|
|
|
-import org.elasticsearch.action.search.ClearScrollRequest;
|
|
|
import org.elasticsearch.action.search.SearchRequest;
|
|
|
import org.elasticsearch.action.support.IndicesOptions;
|
|
|
import org.elasticsearch.cluster.node.DiscoveryNode;
|
|
@@ -58,7 +57,7 @@ import java.io.IOException;
|
|
|
* An encapsulation of {@link org.elasticsearch.search.SearchService} operations exposed through
|
|
|
* transport.
|
|
|
*/
|
|
|
-public class SearchServiceTransportAction extends AbstractComponent {
|
|
|
+public class SearchTransportService extends AbstractComponent {
|
|
|
|
|
|
public static final String FREE_CONTEXT_SCROLL_ACTION_NAME = "indices:data/read/search[free_context/scroll]";
|
|
|
public static final String FREE_CONTEXT_ACTION_NAME = "indices:data/read/search[free_context]";
|
|
@@ -77,26 +76,39 @@ public class SearchServiceTransportAction extends AbstractComponent {
|
|
|
private final SearchService searchService;
|
|
|
|
|
|
@Inject
|
|
|
- public SearchServiceTransportAction(Settings settings, TransportService transportService, SearchService searchService) {
|
|
|
+ public SearchTransportService(Settings settings, TransportService transportService, SearchService searchService) {
|
|
|
super(settings);
|
|
|
this.transportService = transportService;
|
|
|
this.searchService = searchService;
|
|
|
- transportService.registerRequestHandler(FREE_CONTEXT_SCROLL_ACTION_NAME, ScrollFreeContextRequest::new, ThreadPool.Names.SAME, new FreeContextTransportHandler<>());
|
|
|
- transportService.registerRequestHandler(FREE_CONTEXT_ACTION_NAME, SearchFreeContextRequest::new, ThreadPool.Names.SAME, new FreeContextTransportHandler<SearchFreeContextRequest>());
|
|
|
- transportService.registerRequestHandler(CLEAR_SCROLL_CONTEXTS_ACTION_NAME, ClearScrollContextsRequest::new, ThreadPool.Names.SAME, new ClearScrollContextsTransportHandler());
|
|
|
- transportService.registerRequestHandler(DFS_ACTION_NAME, ShardSearchTransportRequest::new, ThreadPool.Names.SEARCH, new SearchDfsTransportHandler());
|
|
|
- transportService.registerRequestHandler(QUERY_ACTION_NAME, ShardSearchTransportRequest::new, ThreadPool.Names.SEARCH, new SearchQueryTransportHandler());
|
|
|
- transportService.registerRequestHandler(QUERY_ID_ACTION_NAME, QuerySearchRequest::new, ThreadPool.Names.SEARCH, new SearchQueryByIdTransportHandler());
|
|
|
- transportService.registerRequestHandler(QUERY_SCROLL_ACTION_NAME, InternalScrollSearchRequest::new, ThreadPool.Names.SEARCH, new SearchQueryScrollTransportHandler());
|
|
|
- transportService.registerRequestHandler(QUERY_FETCH_ACTION_NAME, ShardSearchTransportRequest::new, ThreadPool.Names.SEARCH, new SearchQueryFetchTransportHandler());
|
|
|
- transportService.registerRequestHandler(QUERY_QUERY_FETCH_ACTION_NAME, QuerySearchRequest::new, ThreadPool.Names.SEARCH, new SearchQueryQueryFetchTransportHandler());
|
|
|
- transportService.registerRequestHandler(QUERY_FETCH_SCROLL_ACTION_NAME, InternalScrollSearchRequest::new, ThreadPool.Names.SEARCH, new SearchQueryFetchScrollTransportHandler());
|
|
|
- transportService.registerRequestHandler(FETCH_ID_SCROLL_ACTION_NAME, ShardFetchRequest::new, ThreadPool.Names.SEARCH, new FetchByIdTransportHandler<>());
|
|
|
- transportService.registerRequestHandler(FETCH_ID_ACTION_NAME, ShardFetchSearchRequest::new, ThreadPool.Names.SEARCH, new FetchByIdTransportHandler<ShardFetchSearchRequest>());
|
|
|
+ transportService.registerRequestHandler(FREE_CONTEXT_SCROLL_ACTION_NAME, ScrollFreeContextRequest::new, ThreadPool.Names.SAME,
|
|
|
+ new FreeContextTransportHandler<>());
|
|
|
+ transportService.registerRequestHandler(FREE_CONTEXT_ACTION_NAME, SearchFreeContextRequest::new, ThreadPool.Names.SAME,
|
|
|
+ new FreeContextTransportHandler<>());
|
|
|
+ transportService.registerRequestHandler(CLEAR_SCROLL_CONTEXTS_ACTION_NAME, ClearScrollContextsRequest::new, ThreadPool.Names.SAME,
|
|
|
+ new ClearScrollContextsTransportHandler());
|
|
|
+ transportService.registerRequestHandler(DFS_ACTION_NAME, ShardSearchTransportRequest::new, ThreadPool.Names.SEARCH,
|
|
|
+ new SearchDfsTransportHandler());
|
|
|
+ transportService.registerRequestHandler(QUERY_ACTION_NAME, ShardSearchTransportRequest::new, ThreadPool.Names.SEARCH,
|
|
|
+ new SearchQueryTransportHandler());
|
|
|
+ transportService.registerRequestHandler(QUERY_ID_ACTION_NAME, QuerySearchRequest::new, ThreadPool.Names.SEARCH,
|
|
|
+ new SearchQueryByIdTransportHandler());
|
|
|
+ transportService.registerRequestHandler(QUERY_SCROLL_ACTION_NAME, InternalScrollSearchRequest::new, ThreadPool.Names.SEARCH,
|
|
|
+ new SearchQueryScrollTransportHandler());
|
|
|
+ transportService.registerRequestHandler(QUERY_FETCH_ACTION_NAME, ShardSearchTransportRequest::new, ThreadPool.Names.SEARCH,
|
|
|
+ new SearchQueryFetchTransportHandler());
|
|
|
+ transportService.registerRequestHandler(QUERY_QUERY_FETCH_ACTION_NAME, QuerySearchRequest::new, ThreadPool.Names.SEARCH,
|
|
|
+ new SearchQueryQueryFetchTransportHandler());
|
|
|
+ transportService.registerRequestHandler(QUERY_FETCH_SCROLL_ACTION_NAME, InternalScrollSearchRequest::new, ThreadPool.Names.SEARCH,
|
|
|
+ new SearchQueryFetchScrollTransportHandler());
|
|
|
+ transportService.registerRequestHandler(FETCH_ID_SCROLL_ACTION_NAME, ShardFetchRequest::new, ThreadPool.Names.SEARCH,
|
|
|
+ new FetchByIdTransportHandler<>());
|
|
|
+ transportService.registerRequestHandler(FETCH_ID_ACTION_NAME, ShardFetchSearchRequest::new, ThreadPool.Names.SEARCH,
|
|
|
+ new FetchByIdTransportHandler<>());
|
|
|
}
|
|
|
|
|
|
public void sendFreeContext(DiscoveryNode node, final long contextId, SearchRequest request) {
|
|
|
- transportService.sendRequest(node, FREE_CONTEXT_ACTION_NAME, new SearchFreeContextRequest(request, contextId), new ActionListenerResponseHandler<SearchFreeContextResponse>(new ActionListener<SearchFreeContextResponse>() {
|
|
|
+ transportService.sendRequest(node, FREE_CONTEXT_ACTION_NAME, new SearchFreeContextRequest(request, contextId),
|
|
|
+ new ActionListenerResponseHandler<SearchFreeContextResponse>(new ActionListener<SearchFreeContextResponse>() {
|
|
|
@Override
|
|
|
public void onResponse(SearchFreeContextResponse response) {
|
|
|
// no need to respond if it was freed or not
|
|
@@ -114,8 +126,9 @@ public class SearchServiceTransportAction extends AbstractComponent {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- public void sendFreeContext(DiscoveryNode node, long contextId, ClearScrollRequest request, final ActionListener<SearchFreeContextResponse> listener) {
|
|
|
- transportService.sendRequest(node, FREE_CONTEXT_SCROLL_ACTION_NAME, new ScrollFreeContextRequest(request, contextId), new ActionListenerResponseHandler<SearchFreeContextResponse>(listener) {
|
|
|
+ public void sendFreeContext(DiscoveryNode node, long contextId, final ActionListener<SearchFreeContextResponse> listener) {
|
|
|
+ transportService.sendRequest(node, FREE_CONTEXT_SCROLL_ACTION_NAME, new ScrollFreeContextRequest(contextId),
|
|
|
+ new ActionListenerResponseHandler<SearchFreeContextResponse>(listener) {
|
|
|
@Override
|
|
|
public SearchFreeContextResponse newInstance() {
|
|
|
return new SearchFreeContextResponse();
|
|
@@ -123,8 +136,9 @@ public class SearchServiceTransportAction extends AbstractComponent {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- public void sendClearAllScrollContexts(DiscoveryNode node, ClearScrollRequest request, final ActionListener<TransportResponse> listener) {
|
|
|
- transportService.sendRequest(node, CLEAR_SCROLL_CONTEXTS_ACTION_NAME, new ClearScrollContextsRequest(), new ActionListenerResponseHandler<TransportResponse>(listener) {
|
|
|
+ public void sendClearAllScrollContexts(DiscoveryNode node, final ActionListener<TransportResponse> listener) {
|
|
|
+ transportService.sendRequest(node, CLEAR_SCROLL_CONTEXTS_ACTION_NAME, new ClearScrollContextsRequest(),
|
|
|
+ new ActionListenerResponseHandler<TransportResponse>(listener) {
|
|
|
@Override
|
|
|
public TransportResponse newInstance() {
|
|
|
return TransportResponse.Empty.INSTANCE;
|
|
@@ -132,7 +146,8 @@ public class SearchServiceTransportAction extends AbstractComponent {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- public void sendExecuteDfs(DiscoveryNode node, final ShardSearchTransportRequest request, final ActionListener<DfsSearchResult> listener) {
|
|
|
+ public void sendExecuteDfs(DiscoveryNode node, final ShardSearchTransportRequest request,
|
|
|
+ final ActionListener<DfsSearchResult> listener) {
|
|
|
transportService.sendRequest(node, DFS_ACTION_NAME, request, new ActionListenerResponseHandler<DfsSearchResult>(listener) {
|
|
|
@Override
|
|
|
public DfsSearchResult newInstance() {
|
|
@@ -141,8 +156,10 @@ public class SearchServiceTransportAction extends AbstractComponent {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- public void sendExecuteQuery(DiscoveryNode node, final ShardSearchTransportRequest request, final ActionListener<QuerySearchResultProvider> listener) {
|
|
|
- transportService.sendRequest(node, QUERY_ACTION_NAME, request, new ActionListenerResponseHandler<QuerySearchResultProvider>(listener) {
|
|
|
+ public void sendExecuteQuery(DiscoveryNode node, final ShardSearchTransportRequest request,
|
|
|
+ final ActionListener<QuerySearchResultProvider> listener) {
|
|
|
+ transportService.sendRequest(node, QUERY_ACTION_NAME, request,
|
|
|
+ new ActionListenerResponseHandler<QuerySearchResultProvider>(listener) {
|
|
|
@Override
|
|
|
public QuerySearchResult newInstance() {
|
|
|
return new QuerySearchResult();
|
|
@@ -159,8 +176,10 @@ public class SearchServiceTransportAction extends AbstractComponent {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- public void sendExecuteQuery(DiscoveryNode node, final InternalScrollSearchRequest request, final ActionListener<ScrollQuerySearchResult> listener) {
|
|
|
- transportService.sendRequest(node, QUERY_SCROLL_ACTION_NAME, request, new ActionListenerResponseHandler<ScrollQuerySearchResult>(listener) {
|
|
|
+ public void sendExecuteQuery(DiscoveryNode node, final InternalScrollSearchRequest request,
|
|
|
+ final ActionListener<ScrollQuerySearchResult> listener) {
|
|
|
+ transportService.sendRequest(node, QUERY_SCROLL_ACTION_NAME, request,
|
|
|
+ new ActionListenerResponseHandler<ScrollQuerySearchResult>(listener) {
|
|
|
@Override
|
|
|
public ScrollQuerySearchResult newInstance() {
|
|
|
return new ScrollQuerySearchResult();
|
|
@@ -168,8 +187,10 @@ public class SearchServiceTransportAction extends AbstractComponent {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- public void sendExecuteFetch(DiscoveryNode node, final ShardSearchTransportRequest request, final ActionListener<QueryFetchSearchResult> listener) {
|
|
|
- transportService.sendRequest(node, QUERY_FETCH_ACTION_NAME, request, new ActionListenerResponseHandler<QueryFetchSearchResult>(listener) {
|
|
|
+ public void sendExecuteFetch(DiscoveryNode node, final ShardSearchTransportRequest request,
|
|
|
+ final ActionListener<QueryFetchSearchResult> listener) {
|
|
|
+ transportService.sendRequest(node, QUERY_FETCH_ACTION_NAME, request,
|
|
|
+ new ActionListenerResponseHandler<QueryFetchSearchResult>(listener) {
|
|
|
@Override
|
|
|
public QueryFetchSearchResult newInstance() {
|
|
|
return new QueryFetchSearchResult();
|
|
@@ -177,8 +198,10 @@ public class SearchServiceTransportAction extends AbstractComponent {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- public void sendExecuteFetch(DiscoveryNode node, final QuerySearchRequest request, final ActionListener<QueryFetchSearchResult> listener) {
|
|
|
- transportService.sendRequest(node, QUERY_QUERY_FETCH_ACTION_NAME, request, new ActionListenerResponseHandler<QueryFetchSearchResult>(listener) {
|
|
|
+ public void sendExecuteFetch(DiscoveryNode node, final QuerySearchRequest request,
|
|
|
+ final ActionListener<QueryFetchSearchResult> listener) {
|
|
|
+ transportService.sendRequest(node, QUERY_QUERY_FETCH_ACTION_NAME, request,
|
|
|
+ new ActionListenerResponseHandler<QueryFetchSearchResult>(listener) {
|
|
|
@Override
|
|
|
public QueryFetchSearchResult newInstance() {
|
|
|
return new QueryFetchSearchResult();
|
|
@@ -186,8 +209,10 @@ public class SearchServiceTransportAction extends AbstractComponent {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- public void sendExecuteFetch(DiscoveryNode node, final InternalScrollSearchRequest request, final ActionListener<ScrollQueryFetchSearchResult> listener) {
|
|
|
- transportService.sendRequest(node, QUERY_FETCH_SCROLL_ACTION_NAME, request, new ActionListenerResponseHandler<ScrollQueryFetchSearchResult>(listener) {
|
|
|
+ public void sendExecuteFetch(DiscoveryNode node, final InternalScrollSearchRequest request,
|
|
|
+ final ActionListener<ScrollQueryFetchSearchResult> listener) {
|
|
|
+ transportService.sendRequest(node, QUERY_FETCH_SCROLL_ACTION_NAME, request,
|
|
|
+ new ActionListenerResponseHandler<ScrollQueryFetchSearchResult>(listener) {
|
|
|
@Override
|
|
|
public ScrollQueryFetchSearchResult newInstance() {
|
|
|
return new ScrollQueryFetchSearchResult();
|
|
@@ -195,15 +220,18 @@ public class SearchServiceTransportAction extends AbstractComponent {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- public void sendExecuteFetch(DiscoveryNode node, final ShardFetchSearchRequest request, final ActionListener<FetchSearchResult> listener) {
|
|
|
+ public void sendExecuteFetch(DiscoveryNode node, final ShardFetchSearchRequest request,
|
|
|
+ final ActionListener<FetchSearchResult> listener) {
|
|
|
sendExecuteFetch(node, FETCH_ID_ACTION_NAME, request, listener);
|
|
|
}
|
|
|
|
|
|
- public void sendExecuteFetchScroll(DiscoveryNode node, final ShardFetchRequest request, final ActionListener<FetchSearchResult> listener) {
|
|
|
+ public void sendExecuteFetchScroll(DiscoveryNode node, final ShardFetchRequest request,
|
|
|
+ final ActionListener<FetchSearchResult> listener) {
|
|
|
sendExecuteFetch(node, FETCH_ID_SCROLL_ACTION_NAME, request, listener);
|
|
|
}
|
|
|
|
|
|
- private void sendExecuteFetch(DiscoveryNode node, String action, final ShardFetchRequest request, final ActionListener<FetchSearchResult> listener) {
|
|
|
+ private void sendExecuteFetch(DiscoveryNode node, String action, final ShardFetchRequest request,
|
|
|
+ final ActionListener<FetchSearchResult> listener) {
|
|
|
transportService.sendRequest(node, action, request, new ActionListenerResponseHandler<FetchSearchResult>(listener) {
|
|
|
@Override
|
|
|
public FetchSearchResult newInstance() {
|
|
@@ -212,17 +240,13 @@ public class SearchServiceTransportAction extends AbstractComponent {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- public static class ScrollFreeContextRequest extends TransportRequest {
|
|
|
+ static class ScrollFreeContextRequest extends TransportRequest {
|
|
|
private long id;
|
|
|
|
|
|
- public ScrollFreeContextRequest() {
|
|
|
+ ScrollFreeContextRequest() {
|
|
|
}
|
|
|
|
|
|
- ScrollFreeContextRequest(ClearScrollRequest request, long id) {
|
|
|
- this(id);
|
|
|
- }
|
|
|
-
|
|
|
- private ScrollFreeContextRequest(long id) {
|
|
|
+ ScrollFreeContextRequest(long id) {
|
|
|
this.id = id;
|
|
|
}
|
|
|
|
|
@@ -243,7 +267,7 @@ public class SearchServiceTransportAction extends AbstractComponent {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public static class SearchFreeContextRequest extends ScrollFreeContextRequest implements IndicesRequest {
|
|
|
+ static class SearchFreeContextRequest extends ScrollFreeContextRequest implements IndicesRequest {
|
|
|
private OriginalIndices originalIndices;
|
|
|
|
|
|
public SearchFreeContextRequest() {
|
|
@@ -311,7 +335,8 @@ public class SearchServiceTransportAction extends AbstractComponent {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- class FreeContextTransportHandler<FreeContextRequest extends ScrollFreeContextRequest> implements TransportRequestHandler<FreeContextRequest> {
|
|
|
+ class FreeContextTransportHandler<FreeContextRequest extends ScrollFreeContextRequest>
|
|
|
+ implements TransportRequestHandler<FreeContextRequest> {
|
|
|
@Override
|
|
|
public void messageReceived(FreeContextRequest request, TransportChannel channel) throws Exception {
|
|
|
boolean freed = searchService.freeContext(request.id());
|
|
@@ -319,7 +344,7 @@ public class SearchServiceTransportAction extends AbstractComponent {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public static class ClearScrollContextsRequest extends TransportRequest {
|
|
|
+ static class ClearScrollContextsRequest extends TransportRequest {
|
|
|
}
|
|
|
|
|
|
class ClearScrollContextsTransportHandler implements TransportRequestHandler<ClearScrollContextsRequest> {
|
|
@@ -393,5 +418,4 @@ public class SearchServiceTransportAction extends AbstractComponent {
|
|
|
channel.sendResponse(result);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
}
|