@@ -605,6 +605,9 @@ public void testSimpleSorts() throws Exception {
605
605
.startObject ("float_value" )
606
606
.field ("type" , "float" )
607
607
.endObject ()
608
+ .startObject ("half_float_value" )
609
+ .field ("type" , "half_float" )
610
+ .endObject ()
608
611
.startObject ("double_value" )
609
612
.field ("type" , "double" )
610
613
.endObject ()
@@ -628,6 +631,7 @@ public void testSimpleSorts() throws Exception {
628
631
.field ("long_value" , i )
629
632
.field ("unsigned_long_value" , UNSIGNED_LONG_BASE .add (BigInteger .valueOf (10000 * i )))
630
633
.field ("float_value" , 0.1 * i )
634
+ .field ("half_float_value" , 0.1 * i )
631
635
.field ("double_value" , 0.1 * i )
632
636
.endObject ()
633
637
);
@@ -794,6 +798,28 @@ public void testSimpleSorts() throws Exception {
794
798
795
799
assertThat (searchResponse .toString (), not (containsString ("error" )));
796
800
801
+ // HALF_FLOAT
802
+ size = 1 + random .nextInt (10 );
803
+ searchResponse = client ().prepareSearch ().setQuery (matchAllQuery ()).setSize (size ).addSort ("half_float_value" , SortOrder .ASC ).get ();
804
+
805
+ assertHitCount (searchResponse , 10L );
806
+ assertThat (searchResponse .getHits ().getHits ().length , equalTo (size ));
807
+ for (int i = 0 ; i < size ; i ++) {
808
+ assertThat (searchResponse .getHits ().getAt (i ).getId (), equalTo (Integer .toString (i )));
809
+ }
810
+
811
+ assertThat (searchResponse .toString (), not (containsString ("error" )));
812
+ size = 1 + random .nextInt (10 );
813
+ searchResponse = client ().prepareSearch ().setQuery (matchAllQuery ()).setSize (size ).addSort ("half_float_value" , SortOrder .DESC ).get ();
814
+
815
+ assertHitCount (searchResponse , 10 );
816
+ assertThat (searchResponse .getHits ().getHits ().length , equalTo (size ));
817
+ for (int i = 0 ; i < size ; i ++) {
818
+ assertThat (searchResponse .getHits ().getAt (i ).getId (), equalTo (Integer .toString (9 - i )));
819
+ }
820
+
821
+ assertThat (searchResponse .toString (), not (containsString ("error" )));
822
+
797
823
// DOUBLE
798
824
size = 1 + random .nextInt (10 );
799
825
searchResponse = client ().prepareSearch ().setQuery (matchAllQuery ()).setSize (size ).addSort ("double_value" , SortOrder .ASC ).get ();
@@ -1330,6 +1356,9 @@ public void testSortMVField() throws Exception {
1330
1356
.startObject ("float_values" )
1331
1357
.field ("type" , "float" )
1332
1358
.endObject ()
1359
+ .startObject ("half_float_values" )
1360
+ .field ("type" , "float" )
1361
+ .endObject ()
1333
1362
.startObject ("double_values" )
1334
1363
.field ("type" , "double" )
1335
1364
.endObject ()
@@ -1351,6 +1380,7 @@ public void testSortMVField() throws Exception {
1351
1380
.array ("short_values" , 1 , 5 , 10 , 8 )
1352
1381
.array ("byte_values" , 1 , 5 , 10 , 8 )
1353
1382
.array ("float_values" , 1f , 5f , 10f , 8f )
1383
+ .array ("half_float_values" , 1f , 5f , 10f , 8f )
1354
1384
.array ("double_values" , 1d , 5d , 10d , 8d )
1355
1385
.array ("string_values" , "01" , "05" , "10" , "08" )
1356
1386
.endObject ()
@@ -1365,6 +1395,7 @@ public void testSortMVField() throws Exception {
1365
1395
.array ("short_values" , 11 , 15 , 20 , 7 )
1366
1396
.array ("byte_values" , 11 , 15 , 20 , 7 )
1367
1397
.array ("float_values" , 11f , 15f , 20f , 7f )
1398
+ .array ("half_float_values" , 11f , 15f , 20f , 7f )
1368
1399
.array ("double_values" , 11d , 15d , 20d , 7d )
1369
1400
.array ("string_values" , "11" , "15" , "20" , "07" )
1370
1401
.endObject ()
@@ -1379,6 +1410,7 @@ public void testSortMVField() throws Exception {
1379
1410
.array ("short_values" , 2 , 1 , 3 , -4 )
1380
1411
.array ("byte_values" , 2 , 1 , 3 , -4 )
1381
1412
.array ("float_values" , 2f , 1f , 3f , -4f )
1413
+ .array ("half_float_values" , 2f , 1f , 3f , -4f )
1382
1414
.array ("double_values" , 2d , 1d , 3d , -4d )
1383
1415
.array ("string_values" , "02" , "01" , "03" , "!4" )
1384
1416
.endObject ()
@@ -1585,6 +1617,34 @@ public void testSortMVField() throws Exception {
1585
1617
assertThat (searchResponse .getHits ().getAt (2 ).getId (), equalTo (Integer .toString (3 )));
1586
1618
assertThat (((Number ) searchResponse .getHits ().getAt (2 ).getSortValues ()[0 ]).floatValue (), equalTo (3f ));
1587
1619
1620
+ searchResponse = client ().prepareSearch ().setQuery (matchAllQuery ()).setSize (10 ).addSort ("half_float_values" , SortOrder .ASC ).get ();
1621
+
1622
+ assertThat (searchResponse .getHits ().getTotalHits ().value , equalTo (3L ));
1623
+ assertThat (searchResponse .getHits ().getHits ().length , equalTo (3 ));
1624
+
1625
+ assertThat (searchResponse .getHits ().getAt (0 ).getId (), equalTo (Integer .toString (3 )));
1626
+ assertThat (((Number ) searchResponse .getHits ().getAt (0 ).getSortValues ()[0 ]).floatValue (), equalTo (-4f ));
1627
+
1628
+ assertThat (searchResponse .getHits ().getAt (1 ).getId (), equalTo (Integer .toString (1 )));
1629
+ assertThat (((Number ) searchResponse .getHits ().getAt (1 ).getSortValues ()[0 ]).floatValue (), equalTo (1f ));
1630
+
1631
+ assertThat (searchResponse .getHits ().getAt (2 ).getId (), equalTo (Integer .toString (2 )));
1632
+ assertThat (((Number ) searchResponse .getHits ().getAt (2 ).getSortValues ()[0 ]).floatValue (), equalTo (7f ));
1633
+
1634
+ searchResponse = client ().prepareSearch ().setQuery (matchAllQuery ()).setSize (10 ).addSort ("half_float_values" , SortOrder .DESC ).get ();
1635
+
1636
+ assertThat (searchResponse .getHits ().getTotalHits ().value , equalTo (3L ));
1637
+ assertThat (searchResponse .getHits ().getHits ().length , equalTo (3 ));
1638
+
1639
+ assertThat (searchResponse .getHits ().getAt (0 ).getId (), equalTo (Integer .toString (2 )));
1640
+ assertThat (((Number ) searchResponse .getHits ().getAt (0 ).getSortValues ()[0 ]).floatValue (), equalTo (20f ));
1641
+
1642
+ assertThat (searchResponse .getHits ().getAt (1 ).getId (), equalTo (Integer .toString (1 )));
1643
+ assertThat (((Number ) searchResponse .getHits ().getAt (1 ).getSortValues ()[0 ]).floatValue (), equalTo (10f ));
1644
+
1645
+ assertThat (searchResponse .getHits ().getAt (2 ).getId (), equalTo (Integer .toString (3 )));
1646
+ assertThat (((Number ) searchResponse .getHits ().getAt (2 ).getSortValues ()[0 ]).floatValue (), equalTo (3f ));
1647
+
1588
1648
searchResponse = client ().prepareSearch ().setQuery (matchAllQuery ()).setSize (10 ).addSort ("double_values" , SortOrder .ASC ).get ();
1589
1649
1590
1650
assertThat (searchResponse .getHits ().getTotalHits ().value , equalTo (3L ));
0 commit comments