如何从某个序列号开始以1.递增。externalId的格式为“EXT20000”,它是唯一的数字,并且以1递增,我们正在从外部系统迁移到Elasticsearch,必须管理计数增量。我不想从应用程序内部增加它,因为可能正在运行多个容器,并且很难以原子方式增加它。每当在之前的插入新文档时,如何在Elasticsearch中增加。我想问问ES这个序列号,并将其与文档一起以“EXT” +“next-sequence-number”的格式保存。@Document(indexName = "bars", shards = 1, versionType = VersionType.INTERNAL, createIndex = true)
public class Bar implements Persistable<String> {
@Id
private String id;
@Field(type = FieldType.Keyword)
private String externalId;
...
}
最佳答案
我所知道的是,不可能保证整个集群的原子性。更糟糕的是,在为文档建立索引时,您无权访问其他文档,因此ingest pipelines也不可能(至少如果我们一口气谈论增量)。
为什么要求原子增量? Here和here是不使用它的一些经典原因。
关于java - 如何在Elasticsearch中管理值的自动排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64694974/