Elasticsearch 的 id 使用什么格式?

Don*_* V. 5 .net elasticsearch

系统生成的弹性搜索 ID 如下所示。

"_id": "AU9HiR3lEVul15o3bNYl"
Run Code Online (Sandbox Code Playgroud)

那是什么格式?还有谁知道一个库来生成这样的 id?

imo*_*tov 6

在 v1.4.0 之前,elasticsearch 使用基于 UUID 的 ids。这些 ID 是RFC4122定义的兼容版本 4.0 的 UUID 的 Base64 编码版本。为了对 ids 进行编码,使用了 URL 安全的 Base64 编码(请参阅RFC3548的第 4 节),并删除了最后两个“=”符号(因为 16 字节的 Base64 编码总是会在末尾生成两个“=”)。

不幸的是,从性能角度来看,完全随机的 ID 不太理想。因此,从版本 1.4.0 开始,elasticsearch 切换到基于时间的 ids。新的 id 格式本质上是flake id的一个版本,只不过它使用 6(不是 8)字节作为时间戳,使用 3(不是 2)字节作为序列号。

问题中的 idAU9HiR3lEVul15o3bNYl看起来像是 2015 年 8 月中旬生成的时基 id。