如何在 Elasticsearch 中的字段上强制执行唯一性以避免重复

How to enforce uniqueness on a field in Elasticsearch to avoid duplicates

@Repository
public interface FooRepository extends ElasticsearchRepository<Foo, String> {
    Foo findByName(String name);
}

如何在 Elasticsearch 中强制字段的唯一性以避免重复,我希望名称在 Foo 中是唯一的。有没有办法使用 FieldType 元数据

来强制执行此操作

Elasticsearch 中字段的唯一性仅针对 id 字段得到保证,如果您想要在尝试更新相同的 id 值时出现错误,您可以在 index-API 中使用 op_type=create .

Elastic 的讨论和 Whosebug 上有几篇帖子确认了相同的行为。

您可以关注一些好帖子以进一步了解 this and this and this