瀏覽代碼

Add preference and routing to search task description (#89289)

Nhat Nguyen 3 年之前
父節點
當前提交
fe1b3bd418

+ 4 - 1
server/src/main/java/org/elasticsearch/action/search/MultiSearchRequest.java

@@ -379,7 +379,10 @@ public class MultiSearchRequest extends ActionRequest implements CompositeIndice
         return new CancellableTask(id, type, action, "", parentTaskId, headers) {
             @Override
             public String getDescription() {
-                return requests.stream().map(SearchRequest::buildDescription).collect(Collectors.joining(action + "[", ",", "]"));
+                return "requests["
+                    + requests.size()
+                    + "]: "
+                    + requests.stream().map(SearchRequest::buildDescription).collect(Collectors.joining(" | "));
             }
         };
     }

+ 11 - 5
server/src/main/java/org/elasticsearch/action/search/SearchRequest.java

@@ -816,15 +816,21 @@ public class SearchRequest extends ActionRequest implements IndicesRequest.Repla
         StringBuilder sb = new StringBuilder();
         sb.append("indices[");
         Strings.arrayToDelimitedString(indices, ",", sb);
-        sb.append("], ");
-        sb.append("search_type[").append(searchType).append("], ");
+        sb.append("]");
+        sb.append(", search_type[").append(searchType).append("]");
         if (scroll != null) {
-            sb.append("scroll[").append(scroll.keepAlive()).append("], ");
+            sb.append(", scroll[").append(scroll.keepAlive()).append("]");
         }
         if (source != null) {
-            sb.append("source[").append(source.toString(FORMAT_PARAMS)).append("]");
+            sb.append(", source[").append(source.toString(FORMAT_PARAMS)).append("]");
         } else {
-            sb.append("source[]");
+            sb.append(", source[]");
+        }
+        if (routing != null) {
+            sb.append(", routing[").append(routing).append("]");
+        }
+        if (preference != null) {
+            sb.append(", preference[").append(preference).append("]");
         }
         return sb.toString();
     }

+ 19 - 0
server/src/test/java/org/elasticsearch/action/search/MultiSearchRequestTests.java

@@ -22,6 +22,7 @@ import org.elasticsearch.rest.RestRequest;
 import org.elasticsearch.rest.action.search.RestMultiSearchAction;
 import org.elasticsearch.search.Scroll;
 import org.elasticsearch.search.builder.SearchSourceBuilder;
+import org.elasticsearch.tasks.TaskId;
 import org.elasticsearch.test.ESTestCase;
 import org.elasticsearch.test.StreamsUtils;
 import org.elasticsearch.test.rest.FakeRestRequest;
@@ -486,6 +487,24 @@ public class MultiSearchRequestTests extends ESTestCase {
         );
     }
 
+    public void testTaskDescription() {
+        MultiSearchRequest request = new MultiSearchRequest();
+        request.add(new SearchRequest().preference("abc"));
+        request.add(new SearchRequest().routing("r").preference("xyz"));
+        request.add(new SearchRequest().indices("index-1"));
+
+        String description = request.createTask(0, "type", "action", TaskId.EMPTY_TASK_ID, Map.of()).getDescription();
+        assertThat(
+            description,
+            equalTo(
+                "requests[3]: "
+                    + "indices[], search_type[QUERY_THEN_FETCH], source[], preference[abc] | "
+                    + "indices[], search_type[QUERY_THEN_FETCH], source[], routing[r], preference[xyz] | "
+                    + "indices[index-1], search_type[QUERY_THEN_FETCH], source[]"
+            )
+        );
+    }
+
     private void assertExpandWildcardsValue(IndicesOptions options, String expectedValue) throws IOException {
         SearchRequest request = new SearchRequest();
         request.indicesOptions(options);

+ 11 - 0
server/src/test/java/org/elasticsearch/action/search/SearchRequestTests.java

@@ -276,6 +276,17 @@ public class SearchRequestTests extends AbstractSearchTestCase {
         );
     }
 
+    public void testDescriptionIncludePreferenceAndRouting() {
+        assertThat(
+            toDescription(new SearchRequest().preference("abc")),
+            equalTo("indices[], search_type[QUERY_THEN_FETCH], source[], preference[abc]")
+        );
+        assertThat(
+            toDescription(new SearchRequest().preference("abc").routing("xyz")),
+            equalTo("indices[], search_type[QUERY_THEN_FETCH], source[], routing[xyz], preference[abc]")
+        );
+    }
+
     private String toDescription(SearchRequest request) {
         return request.createTask(0, "test", SearchAction.NAME, TaskId.EMPTY_TASK_ID, emptyMap()).getDescription();
     }