@@ -2910,34 +2910,35 @@ public List<Object> fetchValues(Source source, int doc, List<Object> ignoredValu
29102910 return List .of ();
29112911 }
29122912 try {
2913- if (sourceValue instanceof List <?> v ) {
2914- for (Object o : v ) {
2915- values .add (NumberFieldMapper .NumberType .FLOAT .parse (o , false ));
2916- }
2917- } else if (sourceValue instanceof String s ) {
2918- if ((element .elementType () == BYTE_ELEMENT .elementType ()
2919- || element .elementType () == BIT_ELEMENT .elementType ())
2920- && s .length () == dims * 2
2921- && ByteElement .isMaybeHexString (s )) {
2922- byte [] bytes ;
2923- try {
2924- bytes = HexFormat .of ().parseHex (s );
2925- } catch (IllegalArgumentException e ) {
2926- bytes = Base64 .getDecoder ().decode (s );
2927- }
2928- for (byte b : bytes ) {
2929- values .add ((float ) b );
2913+ switch (sourceValue ) {
2914+ case List <?> v -> {
2915+ for (Object o : v ) {
2916+ values .add (NumberFieldMapper .NumberType .FLOAT .parse (o , false ));
29302917 }
2931- } else {
2932- byte [] floatBytes = Base64 .getDecoder ().decode (s );
2933- float [] floats = new float [dims ];
2934- ByteBuffer .wrap (floatBytes ).asFloatBuffer ().get (floats );
2935- for (float f : floats ) {
2936- values .add (f );
2918+ }
2919+ case String s -> {
2920+ if ((element .elementType () == ElementType .BYTE || element .elementType () == ElementType .BIT )
2921+ && s .length () == dims * 2
2922+ && ByteElement .isMaybeHexString (s )) {
2923+ byte [] bytes ;
2924+ try {
2925+ bytes = HexFormat .of ().parseHex (s );
2926+ } catch (IllegalArgumentException e ) {
2927+ bytes = Base64 .getDecoder ().decode (s );
2928+ }
2929+ for (byte b : bytes ) {
2930+ values .add ((float ) b );
2931+ }
2932+ } else {
2933+ byte [] floatBytes = Base64 .getDecoder ().decode (s );
2934+ float [] floats = new float [dims ];
2935+ ByteBuffer .wrap (floatBytes ).asFloatBuffer ().get (floats );
2936+ for (float f : floats ) {
2937+ values .add (f );
2938+ }
29372939 }
29382940 }
2939- } else {
2940- ignoredValues .add (sourceValue );
2941+ default -> ignoredValues .add (sourceValue );
29412942 }
29422943 } catch (Exception e ) {
29432944 // if parsing fails here then it would have failed at index time
0 commit comments