ElasticSearch的document的id有两种生成方式:
- 手动指定生成id
- 自动生成id
来看看这两种生成方式的应用场景。
1.手动生成document id
根据应用情况来看是否满足手动生成id的前提,一般来说从其他系统导入一部分数据到es时可以使用手动指定id的方式。也就是说该数据在进入es之前已经有自己的id了。比如现在要做一个电商网站,数据首先在后台管理系统中提交进入数据库一份,此时已经生成了主键id。如果此时将数据导入到es中就适合用手动指定的方式,来保证数据只有一个id。此时如果采用自动生成再生成一个id,其实意义不大。
api: put /index/type
2.自动生成document id
如果我们做的系统只使用es一种存储方式,并没有使用关系型数据库,那么可以采用自动生成id。
自动生成的id长度20,URL安全,base64编码,GUID算法保证分布式系统中并行生成不会冲突。(可自行了解GUID算法)
api : put /index/type/id