如何在elasticsearch中管理值的自动排序

uujelgoq  于 2021-06-10  发布在  ElasticSearch
关注(0)|答案(1)|浏览(335)

如何从一个特定的序列号开始递增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;
...
}
xzlaal3s

xzlaal3s1#

我所知道的是,保证整个集群的原子性是不可能的。更糟糕的是,在索引文档时,您无法访问其他文档,因此摄取管道也不可能(至少如果我们说的是一次性递增的话)
为什么需要原子增量?这里有一些不使用它的经典理由。

相关问题