@@ -810,6 +810,32 @@ public void testDocValueFields() throws Exception {
810810 equalTo (new BytesRef (new byte [] {42 , 100 })));
811811 assertThat (searchResponse .getHits ().getAt (0 ).getFields ().get ("ip_field" ).getValue (), equalTo ("::1" ));
812812
813+ builder = client ().prepareSearch ().setQuery (matchAllQuery ())
814+ .addDocValueField ("*field" );
815+ searchResponse = builder .execute ().actionGet ();
816+
817+ assertThat (searchResponse .getHits ().getTotalHits (), equalTo (1L ));
818+ assertThat (searchResponse .getHits ().getHits ().length , equalTo (1 ));
819+ fields = new HashSet <>(searchResponse .getHits ().getAt (0 ).getFields ().keySet ());
820+ assertThat (fields , equalTo (newHashSet ("byte_field" , "short_field" , "integer_field" , "long_field" ,
821+ "float_field" , "double_field" , "date_field" , "boolean_field" , "text_field" , "keyword_field" ,
822+ "binary_field" , "ip_field" )));
823+
824+ assertThat (searchResponse .getHits ().getAt (0 ).getFields ().get ("byte_field" ).getValue ().toString (), equalTo ("1" ));
825+ assertThat (searchResponse .getHits ().getAt (0 ).getFields ().get ("short_field" ).getValue ().toString (), equalTo ("2" ));
826+ assertThat (searchResponse .getHits ().getAt (0 ).getFields ().get ("integer_field" ).getValue (), equalTo ((Object ) 3L ));
827+ assertThat (searchResponse .getHits ().getAt (0 ).getFields ().get ("long_field" ).getValue (), equalTo ((Object ) 4L ));
828+ assertThat (searchResponse .getHits ().getAt (0 ).getFields ().get ("float_field" ).getValue (), equalTo ((Object ) 5.0 ));
829+ assertThat (searchResponse .getHits ().getAt (0 ).getFields ().get ("double_field" ).getValue (), equalTo ((Object ) 6.0d ));
830+ dateField = searchResponse .getHits ().getAt (0 ).getFields ().get ("date_field" ).getValue ();
831+ assertThat (dateField .toInstant ().toEpochMilli (), equalTo (date .toInstant ().toEpochMilli ()));
832+ assertThat (searchResponse .getHits ().getAt (0 ).getFields ().get ("boolean_field" ).getValue (), equalTo ((Object ) true ));
833+ assertThat (searchResponse .getHits ().getAt (0 ).getFields ().get ("text_field" ).getValue (), equalTo ("foo" ));
834+ assertThat (searchResponse .getHits ().getAt (0 ).getFields ().get ("keyword_field" ).getValue (), equalTo ("foo" ));
835+ assertThat (searchResponse .getHits ().getAt (0 ).getFields ().get ("binary_field" ).getValue (),
836+ equalTo (new BytesRef (new byte [] {42 , 100 })));
837+ assertThat (searchResponse .getHits ().getAt (0 ).getFields ().get ("ip_field" ).getValue (), equalTo ("::1" ));
838+
813839 builder = client ().prepareSearch ().setQuery (matchAllQuery ())
814840 .addDocValueField ("text_field" , "use_field_mapping" )
815841 .addDocValueField ("keyword_field" , "use_field_mapping" )
@@ -977,6 +1003,70 @@ public void testDocValueFieldsWithFieldAlias() throws Exception {
9771003 assertThat (fetchedDate , equalTo (date ));
9781004 }
9791005
1006+ public void testWildcardDocValueFieldsWithFieldAlias () throws Exception {
1007+ XContentBuilder mapping = XContentFactory .jsonBuilder ()
1008+ .startObject ()
1009+ .startObject ("type" )
1010+ .startObject ("_source" )
1011+ .field ("enabled" , false )
1012+ .endObject ()
1013+ .startObject ("properties" )
1014+ .startObject ("text_field" )
1015+ .field ("type" , "text" )
1016+ .field ("fielddata" , true )
1017+ .endObject ()
1018+ .startObject ("date_field" )
1019+ .field ("type" , "date" )
1020+ .field ("format" , "yyyy-MM-dd" )
1021+ .endObject ()
1022+ .startObject ("text_field_alias" )
1023+ .field ("type" , "alias" )
1024+ .field ("path" , "text_field" )
1025+ .endObject ()
1026+ .startObject ("date_field_alias" )
1027+ .field ("type" , "alias" )
1028+ .field ("path" , "date_field" )
1029+ .endObject ()
1030+ .endObject ()
1031+ .endObject ()
1032+ .endObject ();
1033+ assertAcked (prepareCreate ("test" ).addMapping ("type" , mapping ));
1034+ ensureGreen ("test" );
1035+
1036+ ZonedDateTime date = ZonedDateTime .of (1990 , 12 , 29 , 0 , 0 , 0 , 0 , ZoneOffset .UTC );
1037+ DateTimeFormatter formatter = DateTimeFormatter .ofPattern ("yyyy-MM-dd" , Locale .ROOT );
1038+
1039+ index ("test" , "type" , "1" , "text_field" , "foo" , "date_field" , formatter .format (date ));
1040+ refresh ("test" );
1041+
1042+ SearchRequestBuilder builder = client ().prepareSearch ().setQuery (matchAllQuery ())
1043+ .addDocValueField ("*alias" , "use_field_mapping" )
1044+ .addDocValueField ("date_field" );
1045+ SearchResponse searchResponse = builder .execute ().actionGet ();
1046+
1047+ assertNoFailures (searchResponse );
1048+ assertHitCount (searchResponse , 1 );
1049+ SearchHit hit = searchResponse .getHits ().getAt (0 );
1050+
1051+ Map <String , DocumentField > fields = hit .getFields ();
1052+ assertThat (fields .keySet (), equalTo (newHashSet ("text_field_alias" , "date_field_alias" , "date_field" )));
1053+
1054+ DocumentField textFieldAlias = fields .get ("text_field_alias" );
1055+ assertThat (textFieldAlias .getName (), equalTo ("text_field_alias" ));
1056+ assertThat (textFieldAlias .getValue (), equalTo ("foo" ));
1057+
1058+ DocumentField dateFieldAlias = fields .get ("date_field_alias" );
1059+ assertThat (dateFieldAlias .getName (), equalTo ("date_field_alias" ));
1060+ assertThat (dateFieldAlias .getValue (),
1061+ equalTo ("1990-12-29" ));
1062+
1063+ DocumentField dateField = fields .get ("date_field" );
1064+ assertThat (dateField .getName (), equalTo ("date_field" ));
1065+
1066+ ZonedDateTime fetchedDate = dateField .getValue ();
1067+ assertThat (fetchedDate , equalTo (date ));
1068+ }
1069+
9801070
9811071 public void testStoredFieldsWithFieldAlias () throws Exception {
9821072 XContentBuilder mapping = XContentFactory .jsonBuilder ()
0 commit comments