Skip to content

Commit 21ce4e9

Browse files
committed
Rename SearchRequest#crossClusterSearch
The SearchRequest#crossClusterSearch method is currently used only as part of cross cluster search request, when minimizing roundtrips. It will soon be used also when splitting a search into two: one for throttled and one for non throttled indices. It will probably be used for other usecases as well in the future, hence it makes sense to generalize its name to subSearchRequest.
1 parent d589cad commit 21ce4e9

File tree

5 files changed

+26
-25
lines changed

5 files changed

+26
-25
lines changed

server/src/main/java/org/elasticsearch/action/search/SearchRequest.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -134,9 +134,10 @@ public SearchRequest(String[] indices, SearchSourceBuilder source) {
134134
}
135135

136136
/**
137-
* Creates a new search request by providing the search request to copy all fields from, the indices to search against, the alias of
138-
* the cluster where it will be executed, as well as the start time in milliseconds from the epoch time and whether the reduction
139-
* should be final or not. Used when a {@link SearchRequest} is created and executed as part of a cross-cluster search request
137+
* Creates a new sub-search request starting from the original search request that is provided.
138+
* For internal use only, allows to fork a search request into multiple search requests that will be executed independently.
139+
* Such requests will not be finally reduced, so that their results can be merged together in one response at completion.
140+
* Used when a {@link SearchRequest} is created and executed as part of a cross-cluster search request
140141
* performing reduction on each cluster in order to minimize network round-trips between the coordinating node and the remote clusters.
141142
*
142143
* @param originalSearchRequest the original search request
@@ -145,8 +146,8 @@ public SearchRequest(String[] indices, SearchSourceBuilder source) {
145146
* @param absoluteStartMillis the absolute start time to be used on the remote clusters to ensure that the same value is used
146147
* @param finalReduce whether the reduction should be final or not
147148
*/
148-
static SearchRequest crossClusterSearch(SearchRequest originalSearchRequest, String[] indices,
149-
String clusterAlias, long absoluteStartMillis, boolean finalReduce) {
149+
static SearchRequest subSearchRequest(SearchRequest originalSearchRequest, String[] indices,
150+
String clusterAlias, long absoluteStartMillis, boolean finalReduce) {
150151
Objects.requireNonNull(originalSearchRequest, "search request must not be null");
151152
validateIndices(indices);
152153
Objects.requireNonNull(clusterAlias, "cluster alias must not be null");
@@ -284,15 +285,15 @@ boolean isFinalReduce() {
284285
/**
285286
* Returns the current time in milliseconds from the time epoch, to be used for the execution of this search request. Used to
286287
* ensure that the same value, determined by the coordinating node, is used on all nodes involved in the execution of the search
287-
* request. When created through {@link #crossClusterSearch(SearchRequest, String[], String, long, boolean)}, this method returns
288+
* request. When created through {@link #subSearchRequest(SearchRequest, String[], String, long, boolean)}, this method returns
288289
* the provided current time, otherwise it will return {@link System#currentTimeMillis()}.
289290
*/
290291
long getOrCreateAbsoluteStartMillis() {
291292
return absoluteStartMillis == DEFAULT_ABSOLUTE_START_MILLIS ? System.currentTimeMillis() : absoluteStartMillis;
292293
}
293294

294295
/**
295-
* Returns the provided <code>absoluteStartMillis</code> when created through {@link #crossClusterSearch} and
296+
* Returns the provided <code>absoluteStartMillis</code> when created through {@link #subSearchRequest} and
296297
* -1 otherwise.
297298
*/
298299
long getAbsoluteStartMillis() {

server/src/main/java/org/elasticsearch/action/search/TransportSearchAction.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ static void ccsRemoteReduce(SearchRequest searchRequest, OriginalIndices localIn
270270
String clusterAlias = entry.getKey();
271271
boolean skipUnavailable = remoteClusterService.isSkipUnavailable(clusterAlias);
272272
OriginalIndices indices = entry.getValue();
273-
SearchRequest ccsSearchRequest = SearchRequest.crossClusterSearch(searchRequest, indices.indices(),
273+
SearchRequest ccsSearchRequest = SearchRequest.subSearchRequest(searchRequest, indices.indices(),
274274
clusterAlias, timeProvider.getAbsoluteStartMillis(), true);
275275
Client remoteClusterClient = remoteClusterService.getRemoteClusterClient(threadPool, clusterAlias);
276276
remoteClusterClient.search(ccsSearchRequest, new ActionListener<SearchResponse>() {
@@ -306,7 +306,7 @@ public void onFailure(Exception e) {
306306
String clusterAlias = entry.getKey();
307307
boolean skipUnavailable = remoteClusterService.isSkipUnavailable(clusterAlias);
308308
OriginalIndices indices = entry.getValue();
309-
SearchRequest ccsSearchRequest = SearchRequest.crossClusterSearch(searchRequest, indices.indices(),
309+
SearchRequest ccsSearchRequest = SearchRequest.subSearchRequest(searchRequest, indices.indices(),
310310
clusterAlias, timeProvider.getAbsoluteStartMillis(), false);
311311
ActionListener<SearchResponse> ccsListener = createCCSListener(clusterAlias, skipUnavailable, countDown,
312312
skippedClusters, exceptions, searchResponseMerger, totalClusters, listener);
@@ -316,7 +316,7 @@ public void onFailure(Exception e) {
316316
if (localIndices != null) {
317317
ActionListener<SearchResponse> ccsListener = createCCSListener(RemoteClusterAware.LOCAL_CLUSTER_GROUP_KEY,
318318
false, countDown, skippedClusters, exceptions, searchResponseMerger, totalClusters, listener);
319-
SearchRequest ccsLocalSearchRequest = SearchRequest.crossClusterSearch(searchRequest, localIndices.indices(),
319+
SearchRequest ccsLocalSearchRequest = SearchRequest.subSearchRequest(searchRequest, localIndices.indices(),
320320
RemoteClusterAware.LOCAL_CLUSTER_GROUP_KEY, timeProvider.getAbsoluteStartMillis(), false);
321321
localSearchConsumer.accept(ccsLocalSearchRequest, ccsListener);
322322
}

server/src/test/java/org/elasticsearch/action/search/SearchPhaseControllerTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,7 @@ private static AtomicArray<SearchPhaseResult> generateFetchResults(int nShards,
330330
}
331331

332332
private static SearchRequest randomSearchRequest() {
333-
return randomBoolean() ? new SearchRequest() : SearchRequest.crossClusterSearch(new SearchRequest(),
333+
return randomBoolean() ? new SearchRequest() : SearchRequest.subSearchRequest(new SearchRequest(),
334334
Strings.EMPTY_ARRAY, "remote", 0, randomBoolean());
335335
}
336336

server/src/test/java/org/elasticsearch/action/search/SearchRequestTests.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,21 +48,21 @@ protected SearchRequest createSearchRequest() throws IOException {
4848
return request;
4949
}
5050
//clusterAlias and absoluteStartMillis do not have public getters/setters hence we randomize them only in this test specifically.
51-
return SearchRequest.crossClusterSearch(request, request.indices(),
51+
return SearchRequest.subSearchRequest(request, request.indices(),
5252
randomAlphaOfLengthBetween(5, 10), randomNonNegativeLong(), randomBoolean());
5353
}
5454

5555
public void testWithLocalReduction() {
56-
expectThrows(NullPointerException.class, () -> SearchRequest.crossClusterSearch(null, Strings.EMPTY_ARRAY, "", 0, randomBoolean()));
56+
expectThrows(NullPointerException.class, () -> SearchRequest.subSearchRequest(null, Strings.EMPTY_ARRAY, "", 0, randomBoolean()));
5757
SearchRequest request = new SearchRequest();
58-
expectThrows(NullPointerException.class, () -> SearchRequest.crossClusterSearch(request, null, "", 0, randomBoolean()));
59-
expectThrows(NullPointerException.class, () -> SearchRequest.crossClusterSearch(request,
58+
expectThrows(NullPointerException.class, () -> SearchRequest.subSearchRequest(request, null, "", 0, randomBoolean()));
59+
expectThrows(NullPointerException.class, () -> SearchRequest.subSearchRequest(request,
6060
new String[]{null}, "", 0, randomBoolean()));
61-
expectThrows(NullPointerException.class, () -> SearchRequest.crossClusterSearch(request,
61+
expectThrows(NullPointerException.class, () -> SearchRequest.subSearchRequest(request,
6262
Strings.EMPTY_ARRAY, null, 0, randomBoolean()));
63-
expectThrows(IllegalArgumentException.class, () -> SearchRequest.crossClusterSearch(request,
63+
expectThrows(IllegalArgumentException.class, () -> SearchRequest.subSearchRequest(request,
6464
Strings.EMPTY_ARRAY, "", -1, randomBoolean()));
65-
SearchRequest searchRequest = SearchRequest.crossClusterSearch(request, Strings.EMPTY_ARRAY, "", 0, randomBoolean());
65+
SearchRequest searchRequest = SearchRequest.subSearchRequest(request, Strings.EMPTY_ARRAY, "", 0, randomBoolean());
6666
assertNull(searchRequest.validate());
6767
}
6868

server/src/test/java/org/elasticsearch/action/search/TransportSearchActionSingleNodeTests.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public void testLocalClusterAlias() {
4646
assertEquals(RestStatus.CREATED, indexResponse.status());
4747

4848
{
49-
SearchRequest searchRequest = SearchRequest.crossClusterSearch(new SearchRequest(), Strings.EMPTY_ARRAY,
49+
SearchRequest searchRequest = SearchRequest.subSearchRequest(new SearchRequest(), Strings.EMPTY_ARRAY,
5050
"local", nowInMillis, randomBoolean());
5151
SearchResponse searchResponse = client().search(searchRequest).actionGet();
5252
assertEquals(1, searchResponse.getHits().getTotalHits().value);
@@ -58,7 +58,7 @@ public void testLocalClusterAlias() {
5858
assertEquals("1", hit.getId());
5959
}
6060
{
61-
SearchRequest searchRequest = SearchRequest.crossClusterSearch(new SearchRequest(), Strings.EMPTY_ARRAY,
61+
SearchRequest searchRequest = SearchRequest.subSearchRequest(new SearchRequest(), Strings.EMPTY_ARRAY,
6262
"", nowInMillis, randomBoolean());
6363
SearchResponse searchResponse = client().search(searchRequest).actionGet();
6464
assertEquals(1, searchResponse.getHits().getTotalHits().value);
@@ -100,21 +100,21 @@ public void testAbsoluteStartMillis() {
100100
assertEquals(0, searchResponse.getTotalShards());
101101
}
102102
{
103-
SearchRequest searchRequest = SearchRequest.crossClusterSearch(new SearchRequest(),
103+
SearchRequest searchRequest = SearchRequest.subSearchRequest(new SearchRequest(),
104104
Strings.EMPTY_ARRAY, "", 0, randomBoolean());
105105
SearchResponse searchResponse = client().search(searchRequest).actionGet();
106106
assertEquals(2, searchResponse.getHits().getTotalHits().value);
107107
}
108108
{
109-
SearchRequest searchRequest = SearchRequest.crossClusterSearch(new SearchRequest(),
109+
SearchRequest searchRequest = SearchRequest.subSearchRequest(new SearchRequest(),
110110
Strings.EMPTY_ARRAY, "", 0, randomBoolean());
111111
searchRequest.indices("<test-{now/d}>");
112112
SearchResponse searchResponse = client().search(searchRequest).actionGet();
113113
assertEquals(1, searchResponse.getHits().getTotalHits().value);
114114
assertEquals("test-1970.01.01", searchResponse.getHits().getHits()[0].getIndex());
115115
}
116116
{
117-
SearchRequest searchRequest = SearchRequest.crossClusterSearch(new SearchRequest(),
117+
SearchRequest searchRequest = SearchRequest.subSearchRequest(new SearchRequest(),
118118
Strings.EMPTY_ARRAY, "", 0, randomBoolean());
119119
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
120120
RangeQueryBuilder rangeQuery = new RangeQueryBuilder("date");
@@ -156,7 +156,7 @@ public void testFinalReduce() {
156156
source.aggregation(terms);
157157

158158
{
159-
SearchRequest searchRequest = randomBoolean() ? originalRequest : SearchRequest.crossClusterSearch(originalRequest,
159+
SearchRequest searchRequest = randomBoolean() ? originalRequest : SearchRequest.subSearchRequest(originalRequest,
160160
Strings.EMPTY_ARRAY, "remote", nowInMillis, true);
161161
SearchResponse searchResponse = client().search(searchRequest).actionGet();
162162
assertEquals(2, searchResponse.getHits().getTotalHits().value);
@@ -165,7 +165,7 @@ public void testFinalReduce() {
165165
assertEquals(1, longTerms.getBuckets().size());
166166
}
167167
{
168-
SearchRequest searchRequest = SearchRequest.crossClusterSearch(originalRequest,
168+
SearchRequest searchRequest = SearchRequest.subSearchRequest(originalRequest,
169169
Strings.EMPTY_ARRAY, "remote", nowInMillis, false);
170170
SearchResponse searchResponse = client().search(searchRequest).actionGet();
171171
assertEquals(2, searchResponse.getHits().getTotalHits().value);

0 commit comments

Comments
 (0)