Skip to content

Commit c87de3e

Browse files
committed
FieldCapabilitiesBuilder
1 parent 894fa24 commit c87de3e

File tree

16 files changed

+213
-240
lines changed

16 files changed

+213
-240
lines changed

modules/mapper-extras/src/test/java/org/elasticsearch/index/mapper/extras/FieldCapsRankFeatureTests.java

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
package org.elasticsearch.index.mapper.extras;
1111

1212
import org.elasticsearch.action.fieldcaps.FieldCapabilities;
13+
import org.elasticsearch.action.fieldcaps.FieldCapabilitiesBuilder;
1314
import org.elasticsearch.action.fieldcaps.FieldCapabilitiesResponse;
1415
import org.elasticsearch.action.support.ActiveShardCount;
1516
import org.elasticsearch.plugins.Plugin;
@@ -19,7 +20,6 @@
1920

2021
import java.util.ArrayList;
2122
import java.util.Collection;
22-
import java.util.Collections;
2323
import java.util.Map;
2424

2525
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked;
@@ -60,7 +60,7 @@ public void testRankFeatureInIndex() {
6060
assertEquals(1, fooRankField.size());
6161
assertThat(fooRankField, Matchers.hasKey("rank_feature"));
6262
assertEquals(
63-
new FieldCapabilities("fooRank", "rank_feature", false, true, false, null, null, null, Collections.emptyMap()),
63+
new FieldCapabilitiesBuilder("fooRank", "rank_feature").isAggregatable(false).build(),
6464
fooRankField.get("rank_feature")
6565
);
6666
}
@@ -79,10 +79,7 @@ public void testRankFeatureInIndexAfterRestart() throws Exception {
7979
Map<String, FieldCapabilities> fooRankField = response.getField("fooRank");
8080
assertEquals(1, fooRankField.size());
8181
assertThat(fooRankField, Matchers.hasKey("rank_feature"));
82-
assertEquals(
83-
new FieldCapabilities("fooRank", "rank_feature", false, true, false, null, null, null, Collections.emptyMap()),
84-
fooRankField.get("rank_feature")
85-
);
82+
assertEquals(fieldCapabilities("fooRank"), fooRankField.get("rank_feature"));
8683
}
8784

8885
public void testAllRankFeatureReturnedIfOneIsPresent() {
@@ -98,18 +95,16 @@ public void testAllRankFeatureReturnedIfOneIsPresent() {
9895
Map<String, FieldCapabilities> fooRankField = response.getField("fooRank");
9996
assertEquals(1, fooRankField.size());
10097
assertThat(fooRankField, Matchers.hasKey("rank_feature"));
101-
assertEquals(
102-
new FieldCapabilities("fooRank", "rank_feature", false, true, false, null, null, null, Collections.emptyMap()),
103-
fooRankField.get("rank_feature")
104-
);
98+
assertEquals(fieldCapabilities("fooRank"), fooRankField.get("rank_feature"));
10599
assertThat(response.get(), Matchers.hasKey("barRank"));
106100
// Check the capabilities for the 'barRank' field.
107101
Map<String, FieldCapabilities> barRankField = response.getField("barRank");
108102
assertEquals(1, barRankField.size());
109103
assertThat(barRankField, Matchers.hasKey("rank_feature"));
110-
assertEquals(
111-
new FieldCapabilities("barRank", "rank_feature", false, true, false, null, null, null, Collections.emptyMap()),
112-
barRankField.get("rank_feature")
113-
);
104+
assertEquals(fieldCapabilities("barRank"), barRankField.get("rank_feature"));
105+
}
106+
107+
private static FieldCapabilities fieldCapabilities(String fieldName) {
108+
return new FieldCapabilitiesBuilder(fieldName, "rank_feature").isAggregatable(false).build();
114109
}
115110
}

server/src/internalClusterTest/java/org/elasticsearch/search/fieldcaps/FieldCapabilitiesIT.java

Lines changed: 9 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import org.elasticsearch.action.admin.indices.close.CloseIndexRequest;
1818
import org.elasticsearch.action.admin.indices.create.CreateIndexRequestBuilder;
1919
import org.elasticsearch.action.fieldcaps.FieldCapabilities;
20+
import org.elasticsearch.action.fieldcaps.FieldCapabilitiesBuilder;
2021
import org.elasticsearch.action.fieldcaps.FieldCapabilitiesFailure;
2122
import org.elasticsearch.action.fieldcaps.FieldCapabilitiesRequest;
2223
import org.elasticsearch.action.fieldcaps.FieldCapabilitiesResponse;
@@ -217,24 +218,11 @@ public void testFieldAlias() {
217218
assertEquals(2, distance.size());
218219

219220
assertTrue(distance.containsKey("double"));
220-
assertEquals(
221-
new FieldCapabilities(
222-
"distance",
223-
"double",
224-
false,
225-
true,
226-
true,
227-
new String[] { "old_index" },
228-
null,
229-
null,
230-
Collections.emptyMap()
231-
),
232-
distance.get("double")
233-
);
221+
assertEquals(new FieldCapabilitiesBuilder("distance", "double").indices("old_index").build(), distance.get("double"));
234222

235223
assertTrue(distance.containsKey("text"));
236224
assertEquals(
237-
new FieldCapabilities("distance", "text", false, true, false, new String[] { "new_index" }, null, null, Collections.emptyMap()),
225+
new FieldCapabilitiesBuilder("distance", "text").isAggregatable(false).indices("new_index").build(),
238226
distance.get("text")
239227
);
240228

@@ -243,10 +231,7 @@ public void testFieldAlias() {
243231
assertEquals(1, routeLength.size());
244232

245233
assertTrue(routeLength.containsKey("double"));
246-
assertEquals(
247-
new FieldCapabilities("route_length_miles", "double", false, true, true, null, null, null, Collections.emptyMap()),
248-
routeLength.get("double")
249-
);
234+
assertEquals(new FieldCapabilitiesBuilder("route_length_miles", "double"), routeLength.get("double"));
250235
}
251236

252237
public void testFieldAliasWithWildcard() {
@@ -282,35 +267,19 @@ public void testWithUnmapped() {
282267
assertEquals(2, oldField.size());
283268

284269
assertTrue(oldField.containsKey("long"));
285-
assertEquals(
286-
new FieldCapabilities("old_field", "long", false, true, true, new String[] { "old_index" }, null, null, Collections.emptyMap()),
287-
oldField.get("long")
288-
);
270+
assertEquals(new FieldCapabilitiesBuilder("old_field", "long").indices("old_index").build(), oldField.get("long"));
289271

290272
assertTrue(oldField.containsKey("unmapped"));
291273
assertEquals(
292-
new FieldCapabilities(
293-
"old_field",
294-
"unmapped",
295-
false,
296-
false,
297-
false,
298-
new String[] { "new_index" },
299-
null,
300-
null,
301-
Collections.emptyMap()
302-
),
274+
new FieldCapabilitiesBuilder("old_field", "unmapped").isSearchable(false).isAggregatable(false).indices("new_index").build(),
303275
oldField.get("unmapped")
304276
);
305277

306278
Map<String, FieldCapabilities> newField = response.getField("new_field");
307279
assertEquals(1, newField.size());
308280

309281
assertTrue(newField.containsKey("long"));
310-
assertEquals(
311-
new FieldCapabilities("new_field", "long", false, true, true, null, null, null, Collections.emptyMap()),
312-
newField.get("long")
313-
);
282+
assertEquals(new FieldCapabilitiesBuilder("new_field", "long").build(), newField.get("long"));
314283
}
315284

316285
public void testWithIndexAlias() {
@@ -429,18 +398,15 @@ public void testMetadataFields() {
429398

430399
assertTrue(idField.containsKey("_id"));
431400
assertEquals(
432-
new FieldCapabilities("_id", "_id", true, true, false, null, null, null, Collections.emptyMap()),
401+
new FieldCapabilitiesBuilder("_id", "_id").isMetadataField(true).isAggregatable(false).build(),
433402
idField.get("_id")
434403
);
435404

436405
Map<String, FieldCapabilities> testField = response.getField("_test");
437406
assertEquals(1, testField.size());
438407

439408
assertTrue(testField.containsKey("keyword"));
440-
assertEquals(
441-
new FieldCapabilities("_test", "keyword", true, true, true, null, null, null, Collections.emptyMap()),
442-
testField.get("keyword")
443-
);
409+
assertEquals(new FieldCapabilitiesBuilder("_test", "keyword").isMetadataField(true).build(), testField.get("keyword"));
444410
}
445411
}
446412

server/src/internalClusterTest/java/org/elasticsearch/search/fieldcaps/FieldCapsHasValueTests.java

Lines changed: 21 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
import org.elasticsearch.action.DocWriteResponse;
1313
import org.elasticsearch.action.fieldcaps.FieldCapabilities;
14+
import org.elasticsearch.action.fieldcaps.FieldCapabilitiesBuilder;
1415
import org.elasticsearch.action.fieldcaps.FieldCapabilitiesResponse;
1516
import org.elasticsearch.action.index.IndexRequestBuilder;
1617
import org.elasticsearch.action.support.ActiveShardCount;
@@ -76,10 +77,7 @@ public void testOnlyFieldsWithValueInIndex() {
7677
Map<String, FieldCapabilities> fooField = response.getField("foo");
7778
assertEquals(1, fooField.size());
7879
assertThat(fooField, Matchers.hasKey("text"));
79-
assertEquals(
80-
new FieldCapabilities("foo", "text", false, true, false, null, null, null, Collections.emptyMap()),
81-
fooField.get("text")
82-
);
80+
assertEquals(new FieldCapabilitiesBuilder("foo", "text").isAggregatable(false).build(), fooField.get("text"));
8381
}
8482

8583
public void testOnlyFieldsWithValueInAlias() {
@@ -94,10 +92,7 @@ public void testOnlyFieldsWithValueInAlias() {
9492
Map<String, FieldCapabilities> fooField = response.getField("foo");
9593
assertEquals(1, fooField.size());
9694
assertThat(fooField, Matchers.hasKey("text"));
97-
assertEquals(
98-
new FieldCapabilities("foo", "text", false, true, false, null, null, null, Collections.emptyMap()),
99-
fooField.get("text")
100-
);
95+
assertEquals(new FieldCapabilitiesBuilder("foo", "text").isAggregatable(false).build(), fooField.get("text"));
10196
}
10297

10398
public void testOnlyFieldsWithValueInSpecifiedIndex() {
@@ -112,10 +107,7 @@ public void testOnlyFieldsWithValueInSpecifiedIndex() {
112107
Map<String, FieldCapabilities> fooField = response.getField("foo");
113108
assertEquals(1, fooField.size());
114109
assertThat(fooField, Matchers.hasKey("text"));
115-
assertEquals(
116-
new FieldCapabilities("foo", "text", false, true, false, null, null, null, Collections.emptyMap()),
117-
fooField.get("text")
118-
);
110+
assertEquals(new FieldCapabilitiesBuilder("foo", "text").isAggregatable(false).build(), fooField.get("text"));
119111
}
120112

121113
public void testOnlyFieldsWithValueInSpecifiedAlias() {
@@ -130,10 +122,7 @@ public void testOnlyFieldsWithValueInSpecifiedAlias() {
130122
Map<String, FieldCapabilities> fooField = response.getField("foo");
131123
assertEquals(1, fooField.size());
132124
assertThat(fooField, Matchers.hasKey("text"));
133-
assertEquals(
134-
new FieldCapabilities("foo", "text", false, true, false, null, null, null, Collections.emptyMap()),
135-
fooField.get("text")
136-
);
125+
assertEquals(new FieldCapabilitiesBuilder("foo", "text").isAggregatable(false).build(), fooField.get("text"));
137126
}
138127

139128
public void testFieldsWithValueAfterUpdate() {
@@ -150,18 +139,12 @@ public void testFieldsWithValueAfterUpdate() {
150139
Map<String, FieldCapabilities> fooField = response.getField("foo");
151140
assertEquals(1, fooField.size());
152141
assertThat(fooField, Matchers.hasKey("text"));
153-
assertEquals(
154-
new FieldCapabilities("foo", "text", false, true, false, null, null, null, Collections.emptyMap()),
155-
fooField.get("text")
156-
);
142+
assertEquals(new FieldCapabilitiesBuilder("foo", "text").isAggregatable(false).build(), fooField.get("text"));
157143
// Check the capabilities for the 'bar' field.
158144
Map<String, FieldCapabilities> barField = response.getField("bar");
159145
assertEquals(1, barField.size());
160146
assertThat(barField, Matchers.hasKey("keyword"));
161-
assertEquals(
162-
new FieldCapabilities("bar", "keyword", false, true, true, null, null, null, Collections.emptyMap()),
163-
barField.get("keyword")
164-
);
147+
assertEquals(new FieldCapabilitiesBuilder("bar", "keyword").build(), barField.get("keyword"));
165148
}
166149

167150
public void testOnlyFieldsWithValueAfterNodesRestart() throws Exception {
@@ -177,10 +160,7 @@ public void testOnlyFieldsWithValueAfterNodesRestart() throws Exception {
177160
Map<String, FieldCapabilities> fooField = response.getField("foo");
178161
assertEquals(1, fooField.size());
179162
assertThat(fooField, Matchers.hasKey("text"));
180-
assertEquals(
181-
new FieldCapabilities("foo", "text", false, true, false, null, null, null, Collections.emptyMap()),
182-
fooField.get("text")
183-
);
163+
assertEquals(new FieldCapabilitiesBuilder("foo", "text").isAggregatable(false).build(), fooField.get("text"));
184164
}
185165

186166
public void testFieldsAndAliasWithValue() {
@@ -198,26 +178,17 @@ public void testFieldsAndAliasWithValue() {
198178
Map<String, FieldCapabilities> fooField = response.getField("foo");
199179
assertEquals(1, fooField.size());
200180
assertThat(fooField, Matchers.hasKey("text"));
201-
assertEquals(
202-
new FieldCapabilities("foo", "text", false, true, false, null, null, null, Collections.emptyMap()),
203-
fooField.get("text")
204-
);
181+
assertEquals(new FieldCapabilitiesBuilder("foo", "text").isAggregatable(false).build(), fooField.get("text"));
205182
// Check the capabilities for the 'bar' field.
206183
Map<String, FieldCapabilities> barField = response.getField("bar");
207184
assertEquals(1, barField.size());
208185
assertThat(barField, Matchers.hasKey("keyword"));
209-
assertEquals(
210-
new FieldCapabilities("bar", "keyword", false, true, true, null, null, null, Collections.emptyMap()),
211-
barField.get("keyword")
212-
);
186+
assertEquals(new FieldCapabilitiesBuilder("bar", "keyword").build(), barField.get("keyword"));
213187
// Check the capabilities for the 'bar-alias' field.
214188
Map<String, FieldCapabilities> barAlias = response.getField("bar-alias");
215189
assertEquals(1, barAlias.size());
216190
assertThat(barAlias, Matchers.hasKey("keyword"));
217-
assertEquals(
218-
new FieldCapabilities("bar-alias", "keyword", false, true, true, null, null, null, Collections.emptyMap()),
219-
barAlias.get("keyword")
220-
);
191+
assertEquals(new FieldCapabilitiesBuilder("bar-alias", "keyword").build(), barAlias.get("keyword"));
221192
}
222193

223194
public void testUnmappedFieldsWithValueAfterRestart() throws Exception {
@@ -238,7 +209,7 @@ public void testUnmappedFieldsWithValueAfterRestart() throws Exception {
238209
assertEquals(2, unmappedField.size());
239210
assertThat(unmappedField, Matchers.hasKey("text"));
240211
assertEquals(
241-
new FieldCapabilities("unmapped", "text", false, true, false, new String[] { INDEX1 }, null, null, Collections.emptyMap()),
212+
new FieldCapabilitiesBuilder("unmapped", "text").isAggregatable(false).indices(INDEX1).build(),
242213
unmappedField.get("text")
243214
);
244215
}
@@ -257,18 +228,12 @@ public void testTwoFieldsNameTwoIndices() {
257228
Map<String, FieldCapabilities> fooField = response.getField("foo");
258229
assertEquals(1, fooField.size());
259230
assertThat(fooField, Matchers.hasKey("text"));
260-
assertEquals(
261-
new FieldCapabilities("foo", "text", false, true, false, null, null, null, Collections.emptyMap()),
262-
fooField.get("text")
263-
);
231+
assertEquals(new FieldCapabilitiesBuilder("foo", "text").isAggregatable(false).build(), fooField.get("text"));
264232
// Check the capabilities for the 'bar' field.
265233
Map<String, FieldCapabilities> barField = response.getField("bar");
266234
assertEquals(1, barField.size());
267235
assertThat(barField, Matchers.hasKey("date"));
268-
assertEquals(
269-
new FieldCapabilities("bar", "date", false, true, true, null, null, null, Collections.emptyMap()),
270-
barField.get("date")
271-
);
236+
assertEquals(new FieldCapabilitiesBuilder("bar", "date").build(), barField.get("date"));
272237
}
273238

274239
public void testSameFieldNameTwoIndices() {
@@ -284,15 +249,9 @@ public void testSameFieldNameTwoIndices() {
284249
Map<String, FieldCapabilities> barField = response.getField("bar");
285250
assertEquals(2, barField.size());
286251
assertThat(barField, Matchers.hasKey("keyword"));
287-
assertEquals(
288-
new FieldCapabilities("bar", "keyword", false, true, true, new String[] { INDEX1 }, null, null, Collections.emptyMap()),
289-
barField.get("keyword")
290-
);
252+
assertEquals(new FieldCapabilitiesBuilder("bar", "keyword").indices(INDEX1).build(), barField.get("keyword"));
291253
assertThat(barField, Matchers.hasKey("date"));
292-
assertEquals(
293-
new FieldCapabilities("bar", "date", false, true, true, new String[] { INDEX2 }, null, null, Collections.emptyMap()),
294-
barField.get("date")
295-
);
254+
assertEquals(new FieldCapabilitiesBuilder("bar", "date").indices(INDEX2).build(), barField.get("date"));
296255
}
297256

298257
public void testDeletedDocsReturned() {
@@ -311,10 +270,7 @@ public void testDeletedDocsReturned() {
311270
Map<String, FieldCapabilities> fooField = response.getField("foo");
312271
assertEquals(1, fooField.size());
313272
assertThat(fooField, Matchers.hasKey("text"));
314-
assertEquals(
315-
new FieldCapabilities("foo", "text", false, true, false, null, null, null, Collections.emptyMap()),
316-
fooField.get("text")
317-
);
273+
assertEquals(new FieldCapabilitiesBuilder("foo", "text").isAggregatable(false).build(), fooField.get("text"));
318274
}
319275

320276
public void testNoNestedFieldsInEmptyIndex() {
@@ -339,15 +295,15 @@ public void testNestedFields() {
339295
assertEquals(1, nestedTypeField.size());
340296
assertThat(nestedTypeField, Matchers.hasKey("nested"));
341297
assertEquals(
342-
new FieldCapabilities("nested_type", "nested", false, false, false, null, null, null, Collections.emptyMap()),
298+
new FieldCapabilitiesBuilder("nested_type", "nested").isSearchable(false).isAggregatable(false).build(),
343299
nestedTypeField.get("nested")
344300
);
345301
// Check the capabilities for the 'nested_type.nested_field' field.
346302
Map<String, FieldCapabilities> nestedTypeNestedField = response.getField("nested_type.nested_field");
347303
assertEquals(1, nestedTypeNestedField.size());
348304
assertThat(nestedTypeNestedField, Matchers.hasKey("text"));
349305
assertEquals(
350-
new FieldCapabilities("nested_type.nested_field", "text", false, true, false, null, null, null, Collections.emptyMap()),
306+
new FieldCapabilitiesBuilder("nested_type.nested_field", "text").isAggregatable(false).build(),
351307
nestedTypeNestedField.get("text")
352308
);
353309
}
@@ -374,17 +330,14 @@ public void testObjectFields() {
374330
assertEquals(1, objectTypeField.size());
375331
assertThat(objectTypeField, Matchers.hasKey("object"));
376332
assertEquals(
377-
new FieldCapabilities("object", "object", false, false, false, null, null, null, Collections.emptyMap()),
333+
new FieldCapabilitiesBuilder("object", "object").isSearchable(false).isAggregatable(false).build(),
378334
objectTypeField.get("object")
379335
);
380336
// Check the capabilities for the 'object.sub_field' field.
381337
Map<String, FieldCapabilities> objectSubfield = response.getField("object.sub_field");
382338
assertEquals(1, objectSubfield.size());
383339
assertThat(objectSubfield, Matchers.hasKey("keyword"));
384-
assertEquals(
385-
new FieldCapabilities("object.sub_field", "keyword", false, true, true, null, null, null, Collections.emptyMap()),
386-
objectSubfield.get("keyword")
387-
);
340+
assertEquals(new FieldCapabilitiesBuilder("object.sub_field", "keyword").build(), objectSubfield.get("keyword"));
388341
}
389342

390343
public void testWithIndexFilter() throws InterruptedException {

0 commit comments

Comments
 (0)