【问题标题】:How to enforce uniqueness on a field in Elasticsearch to avoid duplicates如何在 Elasticsearch 中的字段上强制唯一性以避免重复
【发布时间】:2020-11-05 18:14:51
【问题描述】:
@Repository
public interface FooRepository extends ElasticsearchRepository<Foo, String> {
    Foo findByName(String name);
}

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

【问题讨论】:

  • foo 是你的索引或字段名??
  • foo 是我的索引
  • name 是 Foo 中的一个属性
  • 所以您想确保您的foo 索引的name 字段中的所有值都是唯一的??
  • 是的,如果不是在插入文档之前抛出错误,我应该如何执行

标签: elasticsearch spring-data-elasticsearch


【解决方案1】:

只有 id 字段才能保证 Elasticsearch 中字段的唯一性,如果您在尝试更新相同的 id 值时希望出现错误,可以在 index-API 中使用op_type=create

在 Elastic 的讨论和 stackoverflow 上有几篇帖子证实了相同的行为。

您可以关注一些好帖子以进一步了解,例如thisthisthis

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-20
    • 1970-01-01
    • 1970-01-01
    • 2018-07-04
    • 1970-01-01
    • 1970-01-01
    • 2015-01-11
    • 1970-01-01
    相关资源
    最近更新 更多