(47)ElasticSearch之bulk语法格式解析
1、bulk的格式:
{action:{metadata}}\n {requestbody}\n
2、为什么不使用如下格式:
[ { "action":{}, "data":{} } ]
这种方式可读性好,但是内部处理就麻烦了:耗费更多内存,增加java虚拟机开销
1)将json数组解析为JSONArray对象,在内存中就需要有一份json文本的拷贝,另外还有一个JSONArray对象
2)解析json数组里的每个json,对每个请求中的document进行路由
3)为路由到同一个shard上的多个请求,创建一个请求数组
4)将这个请求数组序列化
5)将序列化后的请求数组发送到对应的节点上去
3、使用第一种的好处:
1)不用将其转换为json对象,直接按照换行符切割json,内存中不需要json文本的拷贝
2)对每两个一组的json,读取meta,进行document路由
3)直接将对应的json发送到node上去
相关推荐
newbornzhao 2020-09-14
做对一件事很重要 2020-09-07
renjinlong 2020-09-03
明瞳 2020-08-19
李玉志 2020-08-19
mengyue 2020-08-07
molong0 2020-08-06
AFei00 2020-08-03
molong0 2020-08-03
wenwentana 2020-08-03
YYDU 2020-08-03
另外一部分,则需要先做聚类、分类处理,将聚合出的分类结果存入ES集群的聚类索引中。数据处理层的聚合结果存入ES中的指定索引,同时将每个聚合主题相关的数据存入每个document下面的某个field下。
sifeimeng 2020-08-03
心丨悦 2020-08-03
liangwenrong 2020-07-31
sifeimeng 2020-08-01
mengyue 2020-07-30
tigercn 2020-07-29
IceStreamLab 2020-07-29