ElasticSearch 自动生成的 ID 是连续的吗?

Jay*_*han 4 elasticsearch

如果我们在向elasticsearch插入文档时没有指定Id,则会自动生成Id。我也知道 Id 是具有预测模式的 Flake Id。

我的问题是这些生成的 Flake Id 是否足够连续,我可以对 _id 或 _uid 执行排序,并确定结果与插入的顺序相同?

Dat*_*eek 5

自动生成_id不是顺序的。它是使用修改后的FlakeID算法生成的 URL 安全、Base64 编码的 GUID 。FlakeID 是一种去中心化算法,可生成 k 阶唯一 ID。

请注意,Elasticsearch 不再_id使用随机 UUID生成。

查看更多详情:


pro*_*mer 1

Elasticsearch 自动生成的 _id 是随机的,不是连续的,_uid 的情况也是如此。如果您想按顺序排序,那么简单的步骤是启用 _timestamp,以便 _timestamp 将插入文档的时间。

但是,_timestamp 会在文档更新时更新。因此,您可能需要创建新的日期字段,手动提供当前时间。

https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-timestamp-field.html