ES update无法保证字段排列顺序

这也是我在折腾毕设时发现的bug。如图,在kibana“开发工具-控制台”上,使用REST Api操作ElasticSearch进行文档的部分更新。重点关注红框:

image-20210116170930628

而后,跳转到Discovery(查询)页面,查询更新结果:

image-20210116171538708

可以看到,红框中的”@type”不在第一个位置了。

如果不太熟悉FastJson,这里解释一下:”@type”用于确定一个基类属于哪个子类

目前版本的FastJson,只能解析@type字段后的部分字段,也就是说,上图的”isCashing”和”cashingCount”就无法被反序列化出来了。这麻烦就大了!

解决方法就3种: