|
76 | 76 | import java.util.List;
|
77 | 77 | import java.util.Map;
|
78 | 78 | import java.util.concurrent.atomic.AtomicReference;
|
| 79 | +import java.util.stream.Collectors; |
79 | 80 |
|
80 | 81 | import static java.util.Collections.singletonMap;
|
81 | 82 | import static org.hamcrest.Matchers.containsString;
|
@@ -1216,16 +1217,16 @@ public void testMultiTermvectors() throws IOException {
|
1216 | 1217 | .put("number_of_shards", 1)
|
1217 | 1218 | .put("number_of_replicas", 0)
|
1218 | 1219 | .build();
|
1219 |
| - String mappings = "\"properties\":{\"field\":{\"type\":\"text\"}}"; |
| 1220 | + String mappings = "\"properties\":{\"field\":{\"type\":\"text\"}, \"field2\":{\"type\":\"text\"}}"; |
1220 | 1221 | createIndex(sourceIndex, settings, mappings);
|
1221 | 1222 | assertEquals(
|
1222 | 1223 | RestStatus.OK,
|
1223 | 1224 | highLevelClient().bulk(
|
1224 | 1225 | new BulkRequest()
|
1225 | 1226 | .add(new IndexRequest(sourceIndex).id("1")
|
1226 |
| - .source(Collections.singletonMap("field", "value1"), XContentType.JSON)) |
| 1227 | + .source(Map.of("field", "value1", "field2", "hello world"), XContentType.JSON)) |
1227 | 1228 | .add(new IndexRequest(sourceIndex).id("2")
|
1228 |
| - .source(Collections.singletonMap("field", "value2"), XContentType.JSON)) |
| 1229 | + .source(Map.of("field", "value2", "field2", "foo var"), XContentType.JSON)) |
1229 | 1230 | .setRefreshPolicy(RefreshPolicy.IMMEDIATE),
|
1230 | 1231 | RequestOptions.DEFAULT
|
1231 | 1232 | ).status()
|
@@ -1270,5 +1271,35 @@ public void testMultiTermvectors() throws IOException {
|
1270 | 1271 | }
|
1271 | 1272 | }
|
1272 | 1273 |
|
| 1274 | + { |
| 1275 | + // test the behavior of fields param |
| 1276 | + MultiTermVectorsRequest mtvRequest = new MultiTermVectorsRequest(); |
| 1277 | + TermVectorsRequest tvRequest1 = new TermVectorsRequest(sourceIndex, "1"); |
| 1278 | + tvRequest1.setFields("field"); |
| 1279 | + mtvRequest.add(tvRequest1); |
| 1280 | + |
| 1281 | + TermVectorsRequest tvRequest2 = new TermVectorsRequest(sourceIndex, "2"); |
| 1282 | + tvRequest2.setFields("field2"); |
| 1283 | + mtvRequest.add(tvRequest2); |
| 1284 | + |
| 1285 | + TermVectorsRequest tvRequest3 = new TermVectorsRequest(sourceIndex, "2"); |
| 1286 | + tvRequest3.setFields("field", "field2"); |
| 1287 | + mtvRequest.add(tvRequest3); |
| 1288 | + |
| 1289 | + MultiTermVectorsResponse mtvResponse = |
| 1290 | + execute(mtvRequest, highLevelClient()::mtermvectors, highLevelClient()::mtermvectorsAsync); |
| 1291 | + List<List<String>> expectedRespFields = List.of(List.of("field"), List.of("field2"), List.of("field", "field2")); |
| 1292 | + List<TermVectorsResponse> responses = mtvResponse.getTermVectorsResponses(); |
| 1293 | + assertEquals(expectedRespFields.size(), responses.size()); |
| 1294 | + for (int i = 0; i < responses.size(); i++) { |
| 1295 | + TermVectorsResponse tvResponse = responses.get(i); |
| 1296 | + assertThat(tvResponse.getIndex(), equalTo(sourceIndex)); |
| 1297 | + assertTrue(tvResponse.getFound()); |
| 1298 | + assertEquals(expectedRespFields.get(i).size(), tvResponse.getTermVectorsList().size()); |
| 1299 | + assertEquals( |
| 1300 | + expectedRespFields.get(i), |
| 1301 | + tvResponse.getTermVectorsList().stream().map(tv -> tv.getFieldName()).collect(Collectors.toList())); |
| 1302 | + } |
| 1303 | + } |
1273 | 1304 | }
|
1274 | 1305 | }
|
0 commit comments