2017-11-23 3 views
0

Solr 6에서 이진 형식의 데이터 (작은 그림)가 있습니다. SolrJ 라이브러리를 사용할 때이 [[email protected]과 같은 응답 참조가 있지만 Solr의 base64 문자열은 아닙니다. 어떤 아이디어로 데이터를 다시 추출 할 수 있을까요?SolrJ 이진 필드에서 데이터를 가져 오는 방법

예 PNG :

"preview_db":"iVBORw0KGgoAAAA...ABJRU5ErkJggg" 
+0

실제로 Solder에 인덱스 된 base64 데이터가 맞습니까? 관리자 인터페이스에서'* : * '를 사용하여 데이터를 검색하면 데이터를 볼 수 있습니까? [B @ ..] 구문은 일반적으로 처리 체인 어딘가에있는 클래스의 직렬화 된 형식입니다 (예 : 데이터베이스 필드 또는 이와 유사한 것) – MatsLindh

+0

예'admin_UI '코드'preview_db : ... '가 복사됩니다. – Babu

+0

필드 유형이 무엇이고 SolrJ를 사용하는 코드의 모양은 무엇입니까? – MatsLindh

답변

1

SolrJ 바이트 [] 배열 (class [B)로 solr.BinaryField를 반환한다. 바이너리를 base64 문자열로 다시 얻으려면 응답 값을 캐스팅하고 바이트 배열을 인코딩 한 다음 String을 만들어야합니다.

byte[] bytes = (byte[]) filedValue; 
byte[] encoded = Base64.encodeBase64(bytes); 
String s = new String(endcoded); 
System.out.println(s); 
관련 문제