51
51
import org .elasticsearch .index .IndexMode ;
52
52
import org .elasticsearch .index .IndexSettings ;
53
53
import org .elasticsearch .index .IndexVersion ;
54
+ import org .elasticsearch .index .IndexVersions ;
54
55
import org .elasticsearch .index .analysis .AnalyzerScope ;
55
56
import org .elasticsearch .index .analysis .CharFilterFactory ;
56
57
import org .elasticsearch .index .analysis .CustomAnalyzer ;
@@ -350,6 +351,31 @@ public void testStoreParameterDefaultsSyntheticSourceWithKeywordMultiField() thr
350
351
assertThat (fieldType .stored (), is (false ));
351
352
}
352
353
354
+ public void testStoreParameterDefaultsSyntheticSourceWithKeywordMultiFieldBwc () throws IOException {
355
+ var indexSettingsBuilder = getIndexSettingsBuilder ();
356
+ indexSettingsBuilder .put (IndexSettings .INDEX_MAPPER_SOURCE_MODE_SETTING .getKey (), "synthetic" );
357
+ var indexSettings = indexSettingsBuilder .build ();
358
+
359
+ var mapping = mapping (b -> {
360
+ b .startObject ("name" );
361
+ b .field ("type" , "text" );
362
+ b .startObject ("fields" );
363
+ b .startObject ("keyword" );
364
+ b .field ("type" , "keyword" );
365
+ b .endObject ();
366
+ b .endObject ();
367
+ b .endObject ();
368
+ });
369
+ IndexVersion beforeVersion = IndexVersions .INDEX_INT_SORT_INT_TYPE_8_19 ;
370
+ DocumentMapper mapper = createMapperService (beforeVersion , indexSettings , mapping ).documentMapper ();
371
+
372
+ var source = source (b -> b .field ("name" , "quick brown fox" ));
373
+ ParsedDocument doc = mapper .parse (source );
374
+ List <IndexableField > fields = doc .rootDoc ().getFields ("name" );
375
+ IndexableFieldType fieldType = fields .get (0 ).fieldType ();
376
+ assertThat (fieldType .stored (), is (false ));
377
+ }
378
+
353
379
public void testStoreParameterDefaultsSyntheticSourceTextFieldIsMultiField () throws IOException {
354
380
var indexSettingsBuilder = getIndexSettingsBuilder ();
355
381
indexSettingsBuilder .put (IndexSettings .INDEX_MAPPER_SOURCE_MODE_SETTING .getKey (), "synthetic" );
@@ -374,6 +400,31 @@ public void testStoreParameterDefaultsSyntheticSourceTextFieldIsMultiField() thr
374
400
assertThat (fieldType .stored (), is (false ));
375
401
}
376
402
403
+ public void testStoreParameterDefaultsSyntheticSourceTextFieldIsMultiFieldBwc () throws IOException {
404
+ var indexSettingsBuilder = getIndexSettingsBuilder ();
405
+ indexSettingsBuilder .put (IndexSettings .INDEX_MAPPER_SOURCE_MODE_SETTING .getKey (), "synthetic" );
406
+ var indexSettings = indexSettingsBuilder .build ();
407
+
408
+ var mapping = mapping (b -> {
409
+ b .startObject ("name" );
410
+ b .field ("type" , "keyword" );
411
+ b .startObject ("fields" );
412
+ b .startObject ("text" );
413
+ b .field ("type" , "text" );
414
+ b .endObject ();
415
+ b .endObject ();
416
+ b .endObject ();
417
+ });
418
+ IndexVersion beforeVersion = IndexVersions .INDEX_INT_SORT_INT_TYPE_8_19 ;
419
+ DocumentMapper mapper = createMapperService (beforeVersion , indexSettings , mapping ).documentMapper ();
420
+
421
+ var source = source (b -> b .field ("name" , "quick brown fox" ));
422
+ ParsedDocument doc = mapper .parse (source );
423
+ List <IndexableField > fields = doc .rootDoc ().getFields ("name.text" );
424
+ IndexableFieldType fieldType = fields .get (0 ).fieldType ();
425
+ assertThat (fieldType .stored (), is (true ));
426
+ }
427
+
377
428
public void testBWCSerialization () throws IOException {
378
429
MapperService mapperService = createMapperService (fieldMapping (b -> {
379
430
b .field ("type" , "text" );
0 commit comments