反序列化本机elasticsearch脚本插件

时间:2016-01-04 19:16:25

标签: elasticsearch

我正在使用原生排序脚本&想要反序列化其中的源文档(以访问多级嵌套对象)。我可以使用

获取SourceLookup对象
SourceLookup source = source(); 

给了我字节

byte[] bytes = source.internalSourceRef().toBytes()

这些字节的序列化格式是什么以及如何反序列化?此操作还有哪些性能考虑因素? 是否需要为每个文档进行磁盘访问?

1 个答案:

答案 0 :(得分:0)

查看SourceLookup的源代码会告诉您更多关于您可以在那里找到的内容。该字节数组基本上是一个序列化的Map(可能是压缩的),用于表示文档源。

使用它的方法是再次在source()引用上调用source,以便检索基础Map

SourceLookup source = source();
// number of keys in the map
int size = source.size();
// retrieve the content of the source
Map<String, Object> map = source.source();
// use the source map