@@ -415,57 +415,6 @@ public void testInvalidTaskTypes() {
415415        }
416416    }
417417
418-     @ Override 
419-     protected  IndexVersion  boostNotAllowedIndexVersion () {
420-         return  IndexVersions .NEW_SPARSE_VECTOR ;
421-     }
422- 
423-     public  void  testOldIndexSemanticTextDenseVectorRaisesError () throws  IOException  {
424-         final  String  fieldName  = "field" ;
425-         final  XContentBuilder  fieldMapping  = fieldMapping (b  -> {
426-             b .field ("type" , "semantic_text" );
427-             b .field (INFERENCE_ID_FIELD , "test_inference_id" );
428-             b .startObject ("model_settings" );
429-             b .field ("task_type" , "text_embedding" );
430-             b .field ("dimensions" , 384 );
431-             b .field ("similarity" , "cosine" );
432-             b .field ("element_type" , "float" );
433-             b .endObject ();
434-         });
435-         assertOldIndexUnsupported (fieldMapping );
436-     }
437- 
438-     public  void  testOldIndexSemanticTextMinimalMappingRaisesError () throws  IOException  {
439-         final  XContentBuilder  fieldMapping  = fieldMapping (this ::minimalMapping );
440-         assertOldIndexUnsupported (fieldMapping );
441-     }
442- 
443-     public  void  testOldIndexSemanticTextSparseVersionRaisesError () throws  IOException  {
444-         final  XContentBuilder  fieldMapping  = fieldMapping (b  -> {
445-             b .field ("type" , "semantic_text" );
446-             b .field ("inference_id" , "another_inference_id" );
447-             b .startObject ("model_settings" );
448-             b .field ("task_type" , "sparse_embedding" );
449-             b .endObject ();
450-         });
451-         assertOldIndexUnsupported (fieldMapping );
452-     }
453- 
454-     private  void  assertOldIndexUnsupported (XContentBuilder  fieldMapping ) {
455- 
456-         MapperParsingException  exception  = assertThrows (
457-             MapperParsingException .class ,
458-             () -> createMapperService (
459-                 fieldMapping ,
460-                 true ,
461-                 IndexVersions .V_8_0_0 ,
462-                 IndexVersionUtils .getPreviousVersion (IndexVersions .NEW_SPARSE_VECTOR )
463-             )
464-         );
465-         assertTrue (exception .getMessage ().contains (UNSUPPORTED_INDEX_MESSAGE ));
466-         assertTrue (exception .getRootCause () instanceof  UnsupportedOperationException );
467-     }
468- 
469418    public  void  testMultiFieldsSupport () throws  IOException  {
470419        if  (useLegacyFormat ) {
471420            Exception  e  = expectThrows (MapperParsingException .class , () -> createMapperService (fieldMapping (b  -> {
@@ -1265,6 +1214,99 @@ public void testModelSettingsRequiredWithChunks() throws IOException {
12651214        assertThat (ex .getMessage (), containsString ("[model_settings] must be set for field [field] when chunks are provided" ));
12661215    }
12671216
1217+     public  void  testPre811IndexSemanticTextDenseVectorRaisesError () throws  IOException  {
1218+         Model  model  = TestModel .createRandomInstance (TaskType .TEXT_EMBEDDING );
1219+         String  fieldName  = randomAlphaOfLength (8 );
1220+ 
1221+         MapperService  mapperService  = createMapperService (
1222+             mapping (
1223+                 b  -> b .startObject (fieldName ).field ("type" , "semantic_text" ).field ("inference_id" , model .getInferenceEntityId ()).endObject ()
1224+             ),
1225+             true ,
1226+             IndexVersions .V_8_0_0 ,
1227+             IndexVersionUtils .getPreviousVersion (IndexVersions .NEW_SPARSE_VECTOR )
1228+         );
1229+         assertSemanticTextField (mapperService , fieldName , false , null , null );
1230+ 
1231+         merge (
1232+             mapperService ,
1233+             mapping (
1234+                 b  -> b .startObject (fieldName )
1235+                     .field ("type" , "semantic_text" )
1236+                     .field ("inference_id" , model .getInferenceEntityId ())
1237+                     .startObject ("model_settings" )
1238+                     .field ("task_type" , TaskType .TEXT_EMBEDDING .toString ())
1239+                     .field ("dimensions" , model .getServiceSettings ().dimensions ())
1240+                     .field ("similarity" , model .getServiceSettings ().similarity ())
1241+                     .field ("element_type" , model .getServiceSettings ().elementType ())
1242+                     .endObject ()
1243+                     .endObject ()
1244+             )
1245+         );
1246+         assertSemanticTextField (mapperService , fieldName , true , null , null );
1247+ 
1248+         DocumentMapper  documentMapper  = mapperService .documentMapper ();
1249+         DocumentParsingException  e  = assertThrows (
1250+             DocumentParsingException .class ,
1251+             () -> documentMapper .parse (
1252+                 source (
1253+                     b  -> addSemanticTextInferenceResults (
1254+                         true ,
1255+                         b ,
1256+                         List .of (randomSemanticText (true , fieldName , model , null , List .of ("foo" , "bar" ), XContentType .JSON ))
1257+                     )
1258+                 )
1259+             )
1260+         );
1261+         assertThat (e .getCause (), instanceOf (UnsupportedOperationException .class ));
1262+         assertThat (e .getCause ().getMessage (), equalTo (UNSUPPORTED_INDEX_MESSAGE ));
1263+     }
1264+ 
1265+     public  void  testPre811IndexSemanticTextSparseVectorRaisesError () throws  IOException  {
1266+         Model  model  = TestModel .createRandomInstance (TaskType .SPARSE_EMBEDDING );
1267+         String  fieldName  = randomAlphaOfLength (8 );
1268+ 
1269+         MapperService  mapperService  = createMapperService (
1270+             mapping (
1271+                 b  -> b .startObject (fieldName ).field ("type" , "semantic_text" ).field ("inference_id" , model .getInferenceEntityId ()).endObject ()
1272+             ),
1273+             true ,
1274+             IndexVersions .V_8_0_0 ,
1275+             IndexVersionUtils .getPreviousVersion (IndexVersions .NEW_SPARSE_VECTOR )
1276+         );
1277+         assertSemanticTextField (mapperService , fieldName , false , null , null );
1278+ 
1279+         merge (
1280+             mapperService ,
1281+             mapping (
1282+                 b  -> b .startObject (fieldName )
1283+                     .field ("type" , "semantic_text" )
1284+                     .field ("inference_id" , model .getInferenceEntityId ())
1285+                     .startObject ("model_settings" )
1286+                     .field ("task_type" , TaskType .SPARSE_EMBEDDING .toString ())
1287+                     .endObject ()
1288+                     .endObject ()
1289+             )
1290+         );
1291+         assertSemanticTextField (mapperService , fieldName , true , null , null );
1292+ 
1293+         DocumentMapper  documentMapper  = mapperService .documentMapper ();
1294+         DocumentParsingException  e  = assertThrows (
1295+             DocumentParsingException .class ,
1296+             () -> documentMapper .parse (
1297+                 source (
1298+                     b  -> addSemanticTextInferenceResults (
1299+                         true ,
1300+                         b ,
1301+                         List .of (randomSemanticText (true , fieldName , model , null , List .of ("foo" , "bar" ), XContentType .JSON ))
1302+                     )
1303+                 )
1304+             )
1305+         );
1306+         assertThat (e .getCause (), instanceOf (UnsupportedOperationException .class ));
1307+         assertThat (e .getCause ().getMessage (), equalTo (UNSUPPORTED_INDEX_MESSAGE ));
1308+     }
1309+ 
12681310    private  MapperService  mapperServiceForFieldWithModelSettings (String  fieldName , String  inferenceId , MinimalServiceSettings  modelSettings )
12691311        throws  IOException  {
12701312        return  mapperServiceForFieldWithModelSettings (fieldName , inferenceId , null , modelSettings );
0 commit comments