如何使用 ReST API 在弹性搜索中保持重复数据计数?
是否可以在弹性搜索中保留具有相同索引的相同数据,但我们应该能够看到它的各种版本?并且在概述区域它应该显示文档 5(6)。
是否可以在弹性搜索中保留具有相同索引的相同数据,但我们应该能够看到它的各种版本?并且在概述区域它应该显示文档 5(6)。
只要您使用不同的 ID,您就可以存储任意多个版本的文档。(请注意,_version
ES 为您管理一个属性,但它仅用于解决冲突。ES 不会让您访问旧版本的文档。)
% curl -s -XPUT localhost:9200/test/foo/1 -d '{"yo":"brah","version":1}' | j
{
"_id": "1",
"_index": "test",
"_type": "foo",
"_version": 1,
"ok": true
}
% curl -s -XPUT localhost:9200/test/foo/2 -d '{"yo":"brah","version":2}' | j
{
"_id": "2",
"_index": "test",
"_type": "foo",
"_version": 1,
"ok": true
}
% curl -s localhost:9200/test/_search | j
{
"_shards": {
"failed": 0,
"successful": 5,
"total": 5
},
"hits": {
"hits": [
{
"_id": "1",
"_index": "test",
"_score": 1.0,
"_source": {
"version": 1,
"yo": "brah"
},
"_type": "foo"
},
{
"_id": "2",
"_index": "test",
"_score": 1.0,
"_source": {
"version": 2,
"yo": "brah"
},
"_type": "foo"
}
],
"max_score": 1.0,
"total": 2
},
"timed_out": false,
"took": 12
}