24
24
import org .elasticsearch .action .ActionListenerResponseHandler ;
25
25
import org .elasticsearch .action .IndicesRequest ;
26
26
import org .elasticsearch .action .OriginalIndices ;
27
- import org .elasticsearch .action .support .HandledTransportAction ;
27
+ import org .elasticsearch .action .support .HandledTransportAction . ChannelActionListener ;
28
28
import org .elasticsearch .action .support .IndicesOptions ;
29
29
import org .elasticsearch .cluster .node .DiscoveryNode ;
30
30
import org .elasticsearch .common .component .AbstractComponent ;
34
34
import org .elasticsearch .common .util .concurrent .ConcurrentCollections ;
35
35
import org .elasticsearch .search .SearchPhaseResult ;
36
36
import org .elasticsearch .search .SearchService ;
37
+ import org .elasticsearch .search .SearchService .CanMatchResponse ;
37
38
import org .elasticsearch .search .dfs .DfsSearchResult ;
38
39
import org .elasticsearch .search .fetch .FetchSearchResult ;
39
40
import org .elasticsearch .search .fetch .QueryFetchSearchResult ;
60
61
import org .elasticsearch .transport .TransportService ;
61
62
62
63
import java .io .IOException ;
63
- import java .io .UncheckedIOException ;
64
64
import java .util .HashMap ;
65
65
import java .util .Map ;
66
66
import java .util .function .BiFunction ;
@@ -340,26 +340,9 @@ public void messageReceived(TransportRequest.Empty request, TransportChannel cha
340
340
transportService .registerRequestHandler (DFS_ACTION_NAME , ShardSearchTransportRequest ::new , ThreadPool .Names .SAME ,
341
341
new TaskAwareTransportRequestHandler <ShardSearchTransportRequest >() {
342
342
@ Override
343
- public void messageReceived (ShardSearchTransportRequest request , TransportChannel channel , Task task ) throws Exception {
344
- searchService .executeDfsPhase (request , (SearchTask ) task , new ActionListener <SearchPhaseResult >() {
345
- @ Override
346
- public void onResponse (SearchPhaseResult searchPhaseResult ) {
347
- try {
348
- channel .sendResponse (searchPhaseResult );
349
- } catch (IOException e ) {
350
- throw new UncheckedIOException (e );
351
- }
352
- }
353
-
354
- @ Override
355
- public void onFailure (Exception e ) {
356
- try {
357
- channel .sendResponse (e );
358
- } catch (IOException e1 ) {
359
- throw new UncheckedIOException (e1 );
360
- }
361
- }
362
- });
343
+ public void messageReceived (ShardSearchTransportRequest request , TransportChannel channel , Task task ) {
344
+ searchService .executeDfsPhase (request , (SearchTask ) task ,
345
+ new ChannelActionListener <>(channel , DFS_ACTION_NAME , request ));
363
346
364
347
}
365
348
});
@@ -369,8 +352,8 @@ public void onFailure(Exception e) {
369
352
new TaskAwareTransportRequestHandler <ShardSearchTransportRequest >() {
370
353
@ Override
371
354
public void messageReceived (ShardSearchTransportRequest request , TransportChannel channel , Task task ) {
372
- searchService .executeQueryPhase (request , (SearchTask ) task , new HandledTransportAction . ChannelActionListener <>
373
- (channel , QUERY_ACTION_NAME , request ));
355
+ searchService .executeQueryPhase (request , (SearchTask ) task ,
356
+ new ChannelActionListener <> (channel , QUERY_ACTION_NAME , request ));
374
357
}
375
358
});
376
359
TransportActionProxy .registerProxyAction (transportService , QUERY_ACTION_NAME ,
@@ -379,49 +362,49 @@ public void messageReceived(ShardSearchTransportRequest request, TransportChanne
379
362
transportService .registerRequestHandler (QUERY_ID_ACTION_NAME , QuerySearchRequest ::new , ThreadPool .Names .SEARCH ,
380
363
new TaskAwareTransportRequestHandler <QuerySearchRequest >() {
381
364
@ Override
382
- public void messageReceived (QuerySearchRequest request , TransportChannel channel , Task task ) throws Exception {
383
- QuerySearchResult result = searchService .executeQueryPhase (request , (SearchTask )task );
384
- channel . sendResponse ( result );
365
+ public void messageReceived (QuerySearchRequest request , TransportChannel channel , Task task ) {
366
+ searchService .executeQueryPhase (request , (SearchTask )task ,
367
+ new ChannelActionListener <>( channel , QUERY_ID_ACTION_NAME , request ) );
385
368
}
386
369
});
387
370
TransportActionProxy .registerProxyAction (transportService , QUERY_ID_ACTION_NAME , QuerySearchResult ::new );
388
371
389
372
transportService .registerRequestHandler (QUERY_SCROLL_ACTION_NAME , InternalScrollSearchRequest ::new , ThreadPool .Names .SEARCH ,
390
373
new TaskAwareTransportRequestHandler <InternalScrollSearchRequest >() {
391
374
@ Override
392
- public void messageReceived (InternalScrollSearchRequest request , TransportChannel channel , Task task ) throws Exception {
393
- ScrollQuerySearchResult result = searchService .executeQueryPhase (request , (SearchTask )task );
394
- channel . sendResponse ( result );
375
+ public void messageReceived (InternalScrollSearchRequest request , TransportChannel channel , Task task ) {
376
+ searchService .executeQueryPhase (request , (SearchTask )task ,
377
+ new ChannelActionListener <>( channel , QUERY_SCROLL_ACTION_NAME , request ) );
395
378
}
396
379
});
397
380
TransportActionProxy .registerProxyAction (transportService , QUERY_SCROLL_ACTION_NAME , ScrollQuerySearchResult ::new );
398
381
399
382
transportService .registerRequestHandler (QUERY_FETCH_SCROLL_ACTION_NAME , InternalScrollSearchRequest ::new , ThreadPool .Names .SEARCH ,
400
383
new TaskAwareTransportRequestHandler <InternalScrollSearchRequest >() {
401
384
@ Override
402
- public void messageReceived (InternalScrollSearchRequest request , TransportChannel channel , Task task ) throws Exception {
403
- ScrollQueryFetchSearchResult result = searchService .executeFetchPhase (request , (SearchTask )task );
404
- channel . sendResponse ( result );
385
+ public void messageReceived (InternalScrollSearchRequest request , TransportChannel channel , Task task ) {
386
+ searchService .executeFetchPhase (request , (SearchTask )task ,
387
+ new ChannelActionListener <>( channel , QUERY_FETCH_SCROLL_ACTION_NAME , request ) );
405
388
}
406
389
});
407
390
TransportActionProxy .registerProxyAction (transportService , QUERY_FETCH_SCROLL_ACTION_NAME , ScrollQueryFetchSearchResult ::new );
408
391
409
392
transportService .registerRequestHandler (FETCH_ID_SCROLL_ACTION_NAME , ShardFetchRequest ::new , ThreadPool .Names .SEARCH ,
410
393
new TaskAwareTransportRequestHandler <ShardFetchRequest >() {
411
394
@ Override
412
- public void messageReceived (ShardFetchRequest request , TransportChannel channel , Task task ) throws Exception {
413
- FetchSearchResult result = searchService .executeFetchPhase (request , (SearchTask )task );
414
- channel . sendResponse ( result );
395
+ public void messageReceived (ShardFetchRequest request , TransportChannel channel , Task task ){
396
+ searchService .executeFetchPhase (request , (SearchTask )task ,
397
+ new ChannelActionListener <>( channel , FETCH_ID_SCROLL_ACTION_NAME , request ) );
415
398
}
416
399
});
417
400
TransportActionProxy .registerProxyAction (transportService , FETCH_ID_SCROLL_ACTION_NAME , FetchSearchResult ::new );
418
401
419
402
transportService .registerRequestHandler (FETCH_ID_ACTION_NAME , ShardFetchSearchRequest ::new , ThreadPool .Names .SEARCH , true , true ,
420
403
new TaskAwareTransportRequestHandler <ShardFetchSearchRequest >() {
421
404
@ Override
422
- public void messageReceived (ShardFetchSearchRequest request , TransportChannel channel , Task task ) throws Exception {
423
- FetchSearchResult result = searchService .executeFetchPhase (request , (SearchTask )task );
424
- channel . sendResponse ( result );
405
+ public void messageReceived (ShardFetchSearchRequest request , TransportChannel channel , Task task ) {
406
+ searchService .executeFetchPhase (request , (SearchTask )task ,
407
+ new ChannelActionListener <>( channel , FETCH_ID_ACTION_NAME , request ) );
425
408
}
426
409
});
427
410
TransportActionProxy .registerProxyAction (transportService , FETCH_ID_ACTION_NAME , FetchSearchResult ::new );
@@ -439,35 +422,6 @@ public void messageReceived(ShardSearchTransportRequest request, TransportChanne
439
422
(Supplier <TransportResponse >) CanMatchResponse ::new );
440
423
}
441
424
442
- public static final class CanMatchResponse extends SearchPhaseResult {
443
- private boolean canMatch ;
444
-
445
- public CanMatchResponse () {
446
- }
447
-
448
- public CanMatchResponse (boolean canMatch ) {
449
- this .canMatch = canMatch ;
450
- }
451
-
452
-
453
- @ Override
454
- public void readFrom (StreamInput in ) throws IOException {
455
- super .readFrom (in );
456
- canMatch = in .readBoolean ();
457
- }
458
-
459
- @ Override
460
- public void writeTo (StreamOutput out ) throws IOException {
461
- super .writeTo (out );
462
- out .writeBoolean (canMatch );
463
- }
464
-
465
- public boolean canMatch () {
466
- return canMatch ;
467
- }
468
- }
469
-
470
-
471
425
/**
472
426
* Returns a connection to the given node on the provided cluster. If the cluster alias is <code>null</code> the node will be resolved
473
427
* against the local cluster.
0 commit comments