重复的 ElasticSearch 文档

Duplicated ElasticSearch documents

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

App inserts/update 文档 IMMEDIATE 刷​​新

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

总体上它按预期工作,org.codelibs.elasticsearch-cluster-runner 上的详细集成测试是绿色的。

来自弹性搜索查询的示例元数据:

{
  "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,
...
      }
    }
  ]
}

测试

详情: 弹性搜索版本 - 7.5 与 org.elasticsearch.client.RestHighLevelClient

的 ES 连接

原因找到了。其中一个节点无法建立连接,有时喜欢断开连接。