2017-11-03 4 views
0

DelimitedPayloadTokenFilterFloatEncoder()でコード化されたBytesRefがあると、BytesRefから実際の浮動小数点値をどのように抽出できますか?luceneはBytesRefを浮動小数点に変換する

PayloadAttribute payloadAttribute = stream.getAttribute(PayloadAttribute.class); 
BytesRef bytesRef = payloadAttribute.getPayload(); 
float payloadValue = ...? 

答えて

0

どうやら、Luceneの店は4バイトBIG_ENDIANため(これはすべてのマシン間で一貫性があるかどうかわからない)にペイロード値をフロート。 A ByteBufferを使用して値を抽出することができます。

float payloadValue = ByteBuffer.wrap(bytesRef.bytes).order(ByteOrder.BIG_ENDIAN).getFloat(); 
関連する問題