Skip to content

Commit 6bf9310

Browse files
committed
Make indices be an array
1 parent 50389ec commit 6bf9310

File tree

4 files changed

+41
-11
lines changed

4 files changed

+41
-11
lines changed

server/src/internalClusterTest/java/org/elasticsearch/search/SearchLoggingIT.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,16 +78,19 @@
7878
import static org.elasticsearch.test.AbstractSearchCancellationTestCase.ScriptedBlockPlugin.SEARCH_BLOCK_SCRIPT_NAME;
7979
import static org.elasticsearch.test.ActivityLoggingUtils.assertMessageFailure;
8080
import static org.elasticsearch.test.ActivityLoggingUtils.assertMessageSuccess;
81+
import static org.elasticsearch.test.ActivityLoggingUtils.getMessageField;
8182
import static org.elasticsearch.test.ActivityLoggingUtils.getMessageData;
8283
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked;
8384
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertFailures;
8485
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertResponse;
8586
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchHitsWithoutFailures;
87+
import static org.hamcrest.Matchers.arrayContaining;
8688
import static org.hamcrest.Matchers.containsString;
8789
import static org.hamcrest.Matchers.equalTo;
8890
import static org.hamcrest.Matchers.greaterThan;
8991
import static org.hamcrest.Matchers.greaterThanOrEqualTo;
9092
import static org.hamcrest.Matchers.hasSize;
93+
import static org.hamcrest.Matchers.instanceOf;
9194

9295
public class SearchLoggingIT extends AbstractSearchCancellationTestCase {
9396
static AccumulatingMockAppender appender;
@@ -179,6 +182,25 @@ public void testSearchLog() {
179182
}
180183
}
181184

185+
public void testIndicesFieldIsArray() {
186+
setupIndex();
187+
188+
assertSearchHitsWithoutFailures(prepareSearch(INDEX_NAME).setQuery(matchQuery("field1", "quick")), "1", "2", "3");
189+
var event = appender.getLastEventAndReset();
190+
Object indicesField = getMessageField(event, QUERY_FIELD_INDICES);
191+
assertThat(indicesField, instanceOf(String[].class));
192+
assertThat((String[]) indicesField, arrayContaining(INDEX_NAME));
193+
194+
// Test with more than one index
195+
String secondIndex = INDEX_NAME + "_2";
196+
assertAcked(prepareCreate(secondIndex));
197+
assertSearchHitsWithoutFailures(prepareSearch(INDEX_NAME, secondIndex).setQuery(matchQuery("field1", "quick")), "1", "2", "3");
198+
var event2 = appender.getLastEventAndReset();
199+
Object indicesField2 = getMessageField(event2, QUERY_FIELD_INDICES);
200+
assertThat(indicesField2, instanceOf(String[].class));
201+
assertThat((String[]) indicesField2, arrayContaining(INDEX_NAME, secondIndex));
202+
}
203+
182204
public void testFailureLog() {
183205
assertAcked(prepareCreate(INDEX_NAME).setMapping("field1", "type=text,index_options=docs"));
184206
indexRandom(

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

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@
99

1010
package org.elasticsearch.action.search;
1111

12-
import joptsimple.internal.Strings;
13-
1412
import org.apache.lucene.search.TotalHits;
1513
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
1614
import org.elasticsearch.common.logging.activity.ActivityLoggerContext;
@@ -108,8 +106,8 @@ public boolean isTimedOut() {
108106
return response != null && response.isTimedOut();
109107
}
110108

111-
public String getIndices() {
112-
return Strings.join(getIndexNames(), ",");
109+
public String[] getIndices() {
110+
return getIndexNames();
113111
}
114112

115113
public boolean hasAggregations() {

test/framework/src/main/java/org/elasticsearch/test/ActivityLoggingUtils.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
import java.util.HashMap;
1717
import java.util.Map;
18+
import java.util.stream.Collectors;
1819

1920
import static org.elasticsearch.action.search.SearchLogProducer.SEARCH_LOGGER_LOG_SYSTEM;
2021
import static org.elasticsearch.common.logging.activity.ActivityLogProducer.EVENT_DURATION_FIELD;
@@ -53,13 +54,24 @@ public static void disableLoggingSystem() {
5354
updateClusterSettings(builder);
5455
}
5556

57+
private static String stringify(Object t) {
58+
if (t instanceof String[]) return String.join(",", (String[]) t);
59+
return t.toString();
60+
}
61+
5662
public static Map<String, String> getMessageData(LogEvent event) {
5763
assertNotNull(event);
5864
assertThat(event.getMessage(), instanceOf(ESLogMessage.class));
5965
ESLogMessage message = (ESLogMessage) event.getMessage();
60-
HashMap<String, String> map = new HashMap<>();
61-
message.getData().forEach((k, v) -> map.put(k, v.toString()));
62-
return map;
66+
67+
return message.getData().entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, e -> stringify(e.getValue())));
68+
}
69+
70+
public static Object getMessageField(LogEvent event, String key) {
71+
assertNotNull(event);
72+
assertThat(event.getMessage(), instanceOf(ESLogMessage.class));
73+
ESLogMessage message = (ESLogMessage) event.getMessage();
74+
return message.getData().get(key);
6375
}
6476

6577
public static void assertMessageSuccess(Map<String, String> message, String type, String query) {

x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/logging/EqlLogContext.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77

88
package org.elasticsearch.xpack.eql.logging;
99

10-
import joptsimple.internal.Strings;
11-
1210
import org.elasticsearch.common.logging.activity.ActivityLoggerContext;
1311
import org.elasticsearch.tasks.Task;
1412
import org.elasticsearch.xpack.eql.action.EqlSearchRequest;
@@ -37,8 +35,8 @@ String getQuery() {
3735
return request.query();
3836
}
3937

40-
public String getIndices() {
41-
return Strings.join(request.indices(), ",");
38+
public String[] getIndices() {
39+
return request.indices();
4240
}
4341

4442
@Override

0 commit comments

Comments
 (0)