2017-11-03 3 views
0

DelimitedPayloadTokenFilterFloatEncoder()으로 인코딩 된 BytesRef이 주어지면 BytesRef에서 실제 플로트 값을 어떻게 추출 할 수 있습니까?lucene는 BytesRef를 float으로 변환합니다.

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

답변

0

분명히, 루씬 상점은 4 바이트 BIG_ENDIAN 위해 (이것은 모든 시스템에서 일관성이 있는지 확실하지 않습니다)에서 페이로드 값을 부동. A ByteBuffer 값을 추출하는 데 사용할 수 있습니다.

float payloadValue = ByteBuffer.wrap(bytesRef.bytes).order(ByteOrder.BIG_ENDIAN).getFloat(); 
관련 문제