本人项目中遇到的一个问题,一个索引的一个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有没有其他机制,可以保证?
添加回答
举报
0/150
提交
取消