elasticsearch - 重复的ElasticSearch文档

标签 elasticsearch apache-kafka lucene elasticsearch-7

我们使用spring boot应用程序来插入/更新 Elasticsearch 文档。我们的数据提供商通过Kafka发送数据。我们的应用程序处理事件,尝试查找记录并插入记录(如果不存在)或更新(如果收到的记录与保存的记录不同)。 elasticsearch中不应有任何重复的记录。

应用程序立即插入/更新文档

问题:
有时我们必须删除所有数据并再次加载它们,因为存在重复的记录。我发现这些克隆的记录仅与插入日期不同。通常相差几个小时。

通常,它可以按预期工作,对org.codelibs.elasticsearch-cluster-runner的详细集成测试为绿色。

来自 Elasticsearch 查询的示例元数据:

{
  "docs" : [
    {
      "_index" : "reference",
      "_type" : "reference",
      "_id" : "s0z-BHIBCvxpj4TjysIf",
      "_version" : 1,
      "_seq_no" : 17315835,
      "_primary_term" : 40,
      "found" : true,
      "_source" : {
        ...
        "insertedDate" : 1589221706262,
        ...
      }
    },
    {
      "_index" : "reference",
      "_type" : "reference",
      "_id" : "jdVCBHIBXucoJmjM8emL",
      "_version" : 1,
      "_seq_no" : 17346529,
      "_primary_term" : 41,
      "found" : true,
      "_source" : {
...
        "insertedDate" : 1589209395577,
...
      }
    }
  ]
}

测试
  • 我多次将数据加载到ES的本地实例-没有重复
  • 我创建了一些长期有效的集成测试,其中包含大量的插入,更新,对org.codelibs.elasticsearch-cluster-runner本地实例的查询,这些实例在内存中具有1到5个节点-无需重复

  • 详细信息:
    flex 搜寻版本-7.5
    ES与org.elasticsearch.client.RestHighLevelClient的连接

    最佳答案

    已找到原因。其中一个节点在建立连接时遇到问题,有时喜欢断开连接。

    关于elasticsearch - 重复的ElasticSearch文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61778054/

    相关文章:

    scala - 带URI的Flink,Kafka和Zookeeper

    hibernate - 为什么要将 Elasticsearch 或 Apache Solr 与 Hibernate Search 一起使用?

    elasticsearch - 来自多个字段的集合中的随机自由文本搜索Elastic Search

    Elasticsearch如何支持涉及多个文档的事务

    elasticsearch - 动态创建ElasticSearch索引时自动检测日期

    hadoop - 使用 kafka-connect 的多个配置单元分区

    apache-kafka - Apache 卡夫卡 : Replay messages in a topic

    lucene - 如何设置一个字段以使行在Lucene中保持唯一?

    indexing - Apache Lucene 8.4.1 如何获取索引字段和术语列表?

    mysql - 有没有办法将数据从 ldap 服务器传输到 MySQL(或 Elasticsearch)?