2

如何使用 ReST API 在弹性搜索中保持重复数据计数?

是否可以在弹性搜索中保留具有相同索引的相同数据,但我们应该能够看到它的各种版本?并且在概述区域它应该显示文档 5(6)。

4

1 回答 1

1

只要您使用不同的 ID,您就可以存储任意多个版本的文档。(请注意,_versionES 为您管理一个属性,但它仅用于解决冲突。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
   }
于 2012-05-21T13:50:44.567 回答