一尘不染

如何在Elasticsearch数据库中创建唯一约束?

elasticsearch

我将Elasticsearch用作文档数据库,并且我创建的每个记录都有一个GUID
ID,系统将其用作记录ID。商界人士希望提供一种功能,使用户可以基于日期和迄今为止在这一天/每月创建的记录数来拥有自己的自动文件名约定。

我需要防止重复的用户文件名。有没有一种方法可以将索引字段设置为唯一?像sql唯一约束一样?


阅读 663

收藏
2020-06-22

共1个答案

一尘不染

您需要使用应该唯一的字段作为文档的ID。默认情况下,具有现有ID的新文档将覆盖具有相同ID的现有文档,但是op_type=create如果已经存在具有相同ID的文档,则可以切换到该文档以获取错误。

但是,无法对任意字段具有相同的行为,只有该_id字段可以那样工作。我可能会考虑在应用程序层而不是在Elasticsearch中处理此逻辑。

2020-06-22