ElasticSearch自动生成的ID是顺序的吗?

时间:2015-06-26 07:03:36

标签: elasticsearch

如果我们在向elasticsearch插入文档时未指定Id,则会自动生成Id。我也明白Ids是Flake Ids,它有一个预测模式。

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

2 个答案:

答案 0 :(得分:1)

Elasticsearch autogenerated _id是随机的,不是顺序的,_uid的情况也是如此。如果你想按顺序排序,那么简单的步骤就是启用_timestamp,这样_timestamp将有时间插入文档。

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

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

答案 1 :(得分:0)

自动生成的_id不是连续的。它是使用修改后的FlakeID算法生成的URL安全,Base64编码的GUID。 FlakeID是一种分散算法,可生成k次序的唯一ID。

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

有关详情,请参阅: