Я пытаюсь отправить закодированную строку в Solr, а затем декодировать ее при извлечении.Мой кодирование выглядит следующим образом:
public static String compress(String inputString) {
try {
if (inputString == null || inputString.length() == 0) {
return null;
}
return new String(compress(inputString.getBytes("UTF-8")));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return null;
}
private static byte[] compress(byte[] input) {
try {
ByteArrayOutputStream out = new ByteArrayOutputStream();
GZIPOutputStream gzip = new GZIPOutputStream(out);
gzip.write(input);
gzip.close();
return out.toByteArray();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
Затем я отправляю в SOLR, и когда я пытаюсь вернуть его (игнорируя декодирование на данный момент, потому что оно терпит неудачу здесь)
SolrDocument resultDoc = iter.next();
String content = (String) resultDoc.getFieldValue("source");
System.out.println(content);
Если яотправьте строку типа «Здравствуйте, меня зовут Крис», закодированный будет выглядеть (игнорируя, какое переполнение стека изменилось);
ã�������ÛHÕ……W»≠T»KÃMU»,VpŒ( ,�ìùùG���
Тем не менее, я получаю ответ от SOLR:
#31;ã#8;#0;#0;#0;#0;#0;#0;#0;ÛHÕ……W»≠T»KÃMU»,VpŒ( ,#6;#0;ìùùG#22;#0;#0;#0;
что, очевидно, приведет к сбою декодирования.Я попытался использовать установку Jetty и Tomcat с одной и той же проблемой.