重复的 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,
...
}
}
]
}
测试
- 我多次将数据加载到 ES 的本地实例 - 没有重复
- 我创建了一些长时间工作的集成测试,在
org.codelibs.elasticsearch-cluster-runner
的本地实例上进行了大量插入、更新和查询,内存中有 1 到 5 个节点 - 没有重复
详情:
弹性搜索版本 - 7.5
与 org.elasticsearch.client.RestHighLevelClient
的 ES 连接
原因找到了。其中一个节点无法建立连接,有时喜欢断开连接。
我们使用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,
...
}
}
]
}
测试
- 我多次将数据加载到 ES 的本地实例 - 没有重复
- 我创建了一些长时间工作的集成测试,在
org.codelibs.elasticsearch-cluster-runner
的本地实例上进行了大量插入、更新和查询,内存中有 1 到 5 个节点 - 没有重复
详情:
弹性搜索版本 - 7.5
与 org.elasticsearch.client.RestHighLevelClient
原因找到了。其中一个节点无法建立连接,有时喜欢断开连接。