首页 > 解决方案 > 如何在 Elasticsearch 中的字段上强制唯一性以避免重复

问题描述

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

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

标签: elasticsearchspring-data-elasticsearch

解决方案


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

Elastic 的讨论和 stackoverflow 上有几篇文章确认了相同的行为。

一些好的帖子,您可以关注这些帖子,以便进一步理解,例如thisthisthis


推荐阅读