我们使用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,
...
}
}
]
}
测试
org.codelibs.elasticsearch-cluster-runner
本地实例的查询,这些实例在内存中具有1到5个节点-无需重复详细信息:
flex 搜寻版本-7.5
ES与
org.elasticsearch.client.RestHighLevelClient
的连接
最佳答案
已找到原因。其中一个节点在建立连接时遇到问题,有时喜欢断开连接。
关于elasticsearch - 重复的ElasticSearch文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61778054/