重复的ElasticSearch文档

bqucvtff  于 2022-11-07  发布在  Lucene
关注(0)|答案(1)|浏览(263)

我们使用Sping 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的本地示例-无重复
  • 我创建了一些长时间的工作集成测试,在内存中有1到5个节点的org.codelibs.elasticsearch-cluster-runner本地示例上进行了大量的插入、更新和查询-没有重复
    详细数据:ElasticSearch版本-使用org.elasticsearch.client.RestHighLevelClient的7.5 ES连接
h79rfbju

h79rfbju1#

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

相关问题