@@ -56,6 +56,7 @@ public class ClassificationIT extends MlNativeDataFrameAnalyticsIntegTestCase {
5656 private static final String BOOLEAN_FIELD = "boolean-field" ;
5757 private static final String NUMERICAL_FIELD = "numerical-field" ;
5858 private static final String DISCRETE_NUMERICAL_FIELD = "discrete-numerical-field" ;
59+ private static final String TEXT_FIELD = "text-field" ;
5960 private static final String KEYWORD_FIELD = "keyword-field" ;
6061 private static final String NESTED_FIELD = "outer-field.inner-field" ;
6162 private static final String ALIAS_TO_KEYWORD_FIELD = "alias-to-keyword-field" ;
@@ -260,6 +261,14 @@ public void testWithOnlyTrainingRowsAndTrainingPercentIsFifty_DependentVariableI
260261 assertThat (e .getMessage (), startsWith ("invalid types [double] for required field [numerical-field];" ));
261262 }
262263
264+ public void testWithOnlyTrainingRowsAndTrainingPercentIsFifty_DependentVariableIsText () throws Exception {
265+ ElasticsearchStatusException e = expectThrows (
266+ ElasticsearchStatusException .class ,
267+ () -> testWithOnlyTrainingRowsAndTrainingPercentIsFifty (
268+ "classification_training_percent_is_50_text" , TEXT_FIELD , KEYWORD_FIELD_VALUES , null ));
269+ assertThat (e .getMessage (), startsWith ("field [text-field] of type [text] is non-aggregatable" ));
270+ }
271+
263272 public void testWithOnlyTrainingRowsAndTrainingPercentIsFifty_DependentVariableIsBoolean () throws Exception {
264273 testWithOnlyTrainingRowsAndTrainingPercentIsFifty (
265274 "classification_training_percent_is_50_boolean" , BOOLEAN_FIELD , BOOLEAN_FIELD_VALUES , "boolean" );
@@ -517,6 +526,7 @@ private static void createIndex(String index) {
517526 BOOLEAN_FIELD , "type=boolean" ,
518527 NUMERICAL_FIELD , "type=double" ,
519528 DISCRETE_NUMERICAL_FIELD , "type=integer" ,
529+ TEXT_FIELD , "type=text" ,
520530 KEYWORD_FIELD , "type=keyword" ,
521531 NESTED_FIELD , "type=keyword" ,
522532 ALIAS_TO_KEYWORD_FIELD , "type=alias,path=" + KEYWORD_FIELD ,
@@ -532,6 +542,7 @@ private static void indexData(String sourceIndex, int numTrainingRows, int numNo
532542 BOOLEAN_FIELD , BOOLEAN_FIELD_VALUES .get (i % BOOLEAN_FIELD_VALUES .size ()),
533543 NUMERICAL_FIELD , NUMERICAL_FIELD_VALUES .get (i % NUMERICAL_FIELD_VALUES .size ()),
534544 DISCRETE_NUMERICAL_FIELD , DISCRETE_NUMERICAL_FIELD_VALUES .get (i % DISCRETE_NUMERICAL_FIELD_VALUES .size ()),
545+ TEXT_FIELD , KEYWORD_FIELD_VALUES .get (i % KEYWORD_FIELD_VALUES .size ()),
535546 KEYWORD_FIELD , KEYWORD_FIELD_VALUES .get (i % KEYWORD_FIELD_VALUES .size ()),
536547 NESTED_FIELD , KEYWORD_FIELD_VALUES .get (i % KEYWORD_FIELD_VALUES .size ()));
537548 IndexRequest indexRequest = new IndexRequest (sourceIndex ).source (source .toArray ());
@@ -549,6 +560,9 @@ private static void indexData(String sourceIndex, int numTrainingRows, int numNo
549560 source .addAll (
550561 List .of (DISCRETE_NUMERICAL_FIELD , DISCRETE_NUMERICAL_FIELD_VALUES .get (i % DISCRETE_NUMERICAL_FIELD_VALUES .size ())));
551562 }
563+ if (TEXT_FIELD .equals (dependentVariable ) == false ) {
564+ source .addAll (List .of (TEXT_FIELD , KEYWORD_FIELD_VALUES .get (i % KEYWORD_FIELD_VALUES .size ())));
565+ }
552566 if (KEYWORD_FIELD .equals (dependentVariable ) == false ) {
553567 source .addAll (List .of (KEYWORD_FIELD , KEYWORD_FIELD_VALUES .get (i % KEYWORD_FIELD_VALUES .size ())));
554568 }
0 commit comments