@Override protected void doExecute(MultiSearchRequest request, ActionListener<MultiSearchResponse> listener) { ClusterState clusterState = clusterService.state(); clusterState.blocks().globalBlockedRaiseException(ClusterBlockLevel.READ); int maxConcurrentSearches = request.maxConcurrentSearchRequests(); if (maxConcurrentSearches == MultiSearchRequest.MAX_CONCURRENT_SEARCH_REQUESTS_DEFAULT) { maxConcurrentSearches = defaultMaxConcurrentSearches(availableProcessors, clusterState); } Queue<SearchRequestSlot> searchRequestSlots = new ConcurrentLinkedQueue<>(); for (int i = 0; i < request.requests().size(); i++) { SearchRequest searchRequest = request.requests().get(i); searchRequestSlots.add(new SearchRequestSlot(searchRequest, i)); } int numRequests = request.requests().size(); final AtomicArray<MultiSearchResponse.Item> responses = new AtomicArray<>(numRequests); final AtomicInteger responseCounter = new AtomicInteger(numRequests); int numConcurrentSearches = Math.min(numRequests, maxConcurrentSearches); for (int i = 0; i < numConcurrentSearches; i++) { executeSearch(searchRequestSlots, responses, responseCounter, listener); } }
multiSearchAction.execute(multiSearchRequest, ActionListener.wrap(r -> { for (int i = 0; i < r.getResponses().length; i++) { MultiSearchResponse.Item item = r.getResponses()[i];
multiSearchAction.execute(multiSearchRequest, ActionListener.wrap(r -> { for (int i = 0; i < r.getResponses().length; i++) { MultiSearchResponse.Item item = r.getResponses()[i];
@Override protected void doExecute(MultiSearchRequest request, ActionListener<MultiSearchResponse> listener) { ClusterState clusterState = clusterService.state(); clusterState.blocks().globalBlockedRaiseException(ClusterBlockLevel.READ); int maxConcurrentSearches = request.maxConcurrentSearchRequests(); if (maxConcurrentSearches == MultiSearchRequest.MAX_CONCURRENT_SEARCH_REQUESTS_DEFAULT) { maxConcurrentSearches = defaultMaxConcurrentSearches(availableProcessors, clusterState); } Queue<SearchRequestSlot> searchRequestSlots = new ConcurrentLinkedQueue<>(); for (int i = 0; i < request.requests().size(); i++) { SearchRequest searchRequest = request.requests().get(i); searchRequestSlots.add(new SearchRequestSlot(searchRequest, i)); } int numRequests = request.requests().size(); final AtomicArray<MultiSearchResponse.Item> responses = new AtomicArray<>(numRequests); final AtomicInteger responseCounter = new AtomicInteger(numRequests); int numConcurrentSearches = Math.min(numRequests, maxConcurrentSearches); for (int i = 0; i < numConcurrentSearches; i++) { executeSearch(searchRequestSlots, responses, responseCounter, listener); } }
@Override protected void doExecute(MultiSearchRequest request, ActionListener<MultiSearchResponse> listener) { ClusterState clusterState = clusterService.state(); clusterState.blocks().globalBlockedRaiseException(ClusterBlockLevel.READ); int maxConcurrentSearches = request.maxConcurrentSearchRequests(); if (maxConcurrentSearches == MultiSearchRequest.MAX_CONCURRENT_SEARCH_REQUESTS_DEFAULT) { maxConcurrentSearches = defaultMaxConcurrentSearches(availableProcessors, clusterState); } Queue<SearchRequestSlot> searchRequestSlots = new ConcurrentLinkedQueue<>(); for (int i = 0; i < request.requests().size(); i++) { SearchRequest searchRequest = request.requests().get(i); searchRequestSlots.add(new SearchRequestSlot(searchRequest, i)); } int numRequests = request.requests().size(); final AtomicArray<MultiSearchResponse.Item> responses = new AtomicArray<>(numRequests); final AtomicInteger responseCounter = new AtomicInteger(numRequests); int numConcurrentSearches = Math.min(numRequests, maxConcurrentSearches); for (int i = 0; i < numConcurrentSearches; i++) { executeSearch(searchRequestSlots, responses, responseCounter, listener); } }
@Override protected void doExecute(MultiSearchRequest request, ActionListener<MultiSearchResponse> listener) { ClusterState clusterState = clusterService.state(); clusterState.blocks().globalBlockedRaiseException(ClusterBlockLevel.READ); int maxConcurrentSearches = request.maxConcurrentSearchRequests(); if (maxConcurrentSearches == 0) { maxConcurrentSearches = defaultMaxConcurrentSearches(availableProcessors, clusterState); } Queue<SearchRequestSlot> searchRequestSlots = new ConcurrentLinkedQueue<>(); for (int i = 0; i < request.requests().size(); i++) { SearchRequest searchRequest = request.requests().get(i); searchRequestSlots.add(new SearchRequestSlot(searchRequest, i)); } int numRequests = request.requests().size(); final AtomicArray<MultiSearchResponse.Item> responses = new AtomicArray<>(numRequests); final AtomicInteger responseCounter = new AtomicInteger(numRequests); int numConcurrentSearches = Math.min(numRequests, maxConcurrentSearches); for (int i = 0; i < numConcurrentSearches; i++) { executeSearch(searchRequestSlots, responses, responseCounter, listener); } }