为了账号安全,请及时绑定邮箱和手机立即绑定

elasticsearch 文档唯一性由多个字段共同确定(类似联合主键),并发下如何确保唯一性?

elasticsearch 文档唯一性由多个字段共同确定(类似联合主键),并发下如何确保唯一性?

摇曳的蔷薇 2019-11-03 09:29:04
本人项目中遇到的一个问题,一个索引的一个mapping如下:{"properties":{"pt_number":{"type":"keyword"},"pt_name":{"type":"keyword"},"pt_longitude":{"type":"text"},"pt_latitude":{"type":"text"},"rd_code":{"type":"text"},"rd_name":{"type":"keyword"},"area_code":{"type":"keyword"},等等其他}}文档的唯一性,根据area_code,pt_longitude,pt_latitude共同确定。pt_number是根据自增码等其他信息生成的一个主键,也是当前文档_id。当判断是否存在时,往往是根据area_code,pt_longitude,pt_latitude共同确定的,然后不存在即可插入。但是在并发条件下,判断及插入我是写在一个syncronized修饰的一个方法里面的。但是这样的,效率非常低,java项目用什么方法能够解决。谢谢。
查看完整描述

2 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

嗯嗯,我认同这个说法,但是由于es的文档字段id字段,我们项目已经显式设置成了pt_number(按一定规则生成的唯一字符串,改动代价异常大),所以我们想从并发的角度来看,需要如何改写?或者es有没有其他机制,可以保证?
                            
查看完整回答
反对 回复 2019-11-03
  • 2 回答
  • 0 关注
  • 3273 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信