Skip to content

Commit dba2f50

Browse files
authored
Make sure that IdFieldType#isAggregatable is accurate. (#62903)
Before, it always returned 'true' even when the setting "indices.id_field_data.enabled" was false. Fixes #62897.
1 parent ec32164 commit dba2f50

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

server/src/test/java/org/elasticsearch/index/mapper/IdFieldMapperTests.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ public void testEnableFieldData() throws IOException {
8888
throw new UnsupportedOperationException();
8989
}).build(null, null));
9090
assertThat(exc.getMessage(), containsString(IndicesService.INDICES_ID_FIELD_DATA_ENABLED_SETTING.getKey()));
91+
assertFalse(ft.isAggregatable());
9192

9293
client().admin().cluster().prepareUpdateSettings()
9394
.setTransientSettings(Settings.builder().put(IndicesService.INDICES_ID_FIELD_DATA_ENABLED_SETTING.getKey(), true))
@@ -97,6 +98,7 @@ public void testEnableFieldData() throws IOException {
9798
throw new UnsupportedOperationException();
9899
}).build(null, null);
99100
assertWarnings(ID_FIELD_DATA_DEPRECATION_MESSAGE);
101+
assertTrue(ft.isAggregatable());
100102
} finally {
101103
// unset cluster setting
102104
client().admin().cluster().prepareUpdateSettings()

server/src/test/java/org/elasticsearch/index/mapper/IdFieldTypeTests.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,12 @@ public void testTermsQuery() {
5353
Query query = ft.termQuery("id", context);
5454
assertEquals(new TermInSetQuery("_id", Uid.encodeId("id")), query);
5555
}
56+
57+
public void testIsAggregatable() {
58+
MappedFieldType ft = new IdFieldMapper.IdFieldType(() -> false);
59+
assertFalse(ft.isAggregatable());
60+
61+
ft = new IdFieldMapper.IdFieldType(() -> true);
62+
assertTrue(ft.isAggregatable());
63+
}
5664
}

0 commit comments

Comments
 (0)