@@ -810,6 +810,32 @@ public void testDocValueFields() throws Exception {
810
810
equalTo (new BytesRef (new byte [] {42 , 100 })));
811
811
assertThat (searchResponse .getHits ().getAt (0 ).getFields ().get ("ip_field" ).getValue (), equalTo ("::1" ));
812
812
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
+
813
839
builder = client ().prepareSearch ().setQuery (matchAllQuery ())
814
840
.addDocValueField ("text_field" , "use_field_mapping" )
815
841
.addDocValueField ("keyword_field" , "use_field_mapping" )
@@ -977,6 +1003,70 @@ public void testDocValueFieldsWithFieldAlias() throws Exception {
977
1003
assertThat (fetchedDate , equalTo (date ));
978
1004
}
979
1005
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
+
980
1070
981
1071
public void testStoredFieldsWithFieldAlias () throws Exception {
982
1072
XContentBuilder mapping = XContentFactory .jsonBuilder ()
0 commit comments