如何解码GSA源中的base64compressed项

时间:2018-03-03 15:45:39

标签: feeds google-search-appliance

我有一个Feed发送到Search Appliance进行索引的内容,但是一个XML节点是base64compressed。看看GSA文档'通过压缩(zlib)然后对它们进行编码来构造自定义馈送。我尝试通过解码然后使用7zip打开它来反转该过程,但它不起作用。

理由:我在看这是因为GSA是EOL,我们正在转向Solr但暂时会继续使用一些GSA连接器(它们是开源的)。我需要查看索引到Search Appliance的内容的文本内容,以便构建一个合适的Solr模式。

我对GSA的经验很少,所以我可能会想到这一切都错了,不胜感激任何有关如何解决这个问题的建议。

谢谢!

1 个答案:

答案 0 :(得分:0)

此代码将解码然后解压缩GSA Feed中的base64compressed项。

    private byte[] decodeUncompress(byte[] data) throws IOException {
        // Decode
        byte[] decodedBytes = Base64.getDecoder().decode(data);

        // Uncompress
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        Inflater decompresser = new Inflater(false);
        InflaterOutputStream inflaterOutputStream = new InflaterOutputStream(stream, decompresser);
        try {
            inflaterOutputStream.write(decodedBytes);

        } catch (IOException e) {
            throw e;
        } finally {
            try {
                inflaterOutputStream.close();
            } catch (IOException e) {
            }
        }
        return stream.toByteArray();
    }