如果我们在向elasticsearch插入文档时未指定Id,则会自动生成Id。我也明白Ids是Flake Ids,它有一个预测模式。
我的问题是这些生成的Flake Ids是否足够顺序,我可以对_id或_uid执行排序,并确保结果与插入的顺序相同?
答案 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
。
有关详情,请参阅: