前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ES每日tip往期回顾(第二期)

ES每日tip往期回顾(第二期)

作者头像
tiaotiaoba
发布2022-01-18 10:21:35
2630
发布2022-01-18 10:21:35
举报
文章被收录于专栏:跳跳爸的Abc跳跳爸的Abc
  • 在假设正常情况下并发更新概率很小的前提下,为了性能考虑,es通过乐观锁解决文档并发更新问题,创建文档时如果不设置version,默认初始version=1,之后每次update时version自增;如果要重置version,只能通过index操作并设置force=true,来强制重置文档version
  • es原生不支持在update时设置version(理论上是可以实现的,我甚至给开发组提了个issue:https://github.com/elastic/elasticsearch/issues/25996),craft一定程度上模拟了带version更新操作
  • es1版本默认date类型处理会在format parse失败后尝试用long.valueOf来转换,假设字段配置为date类型,format为YYYY-MM-dd HH:mm:ss,那么传入一个"12345"的string类型,es1版本是不会报错的,会把"12345"转成long再转成UTC时间;es5版本已经修复这个问题
  • es的source是单独作为一个字段存储的,而且是保持传入的样式原样保存,假设字段A类型为long,如果传入的doc={A: "12345"},即使A为string类型也是可以正确录入的,但是返回的source中字段A还是保持string形式"12345",不会转换成配置的long类型
  • es的source是一个json字符串,无法保存类型信息,会在请求返回时反序列化为Map<String, Object>,其中字段类型是自动推测的,假设字段B为long,但是其值为1,反序列化时(es内置jackson做json转换),值 <= max_int就把A反序列化为int类型,值 > max_int才会返回long类型
  • es版本执行写请求时,如果源文档设置的version与已存在的文档冲突(默认策略provided version > stored version算成功),会报version conflict异常,即使是在index或者create操作时显式设置version,也有可能会抛出版本冲突异常
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-10-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 跳跳爸的Abc 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档