码迷,mamicode.com
首页 > 其他好文 > 详细

更新整个document(updating a whole document)

时间:2014-05-16 01:07:04      阅读:318      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   c   tar   ext   

ES中的document是不可变的。如果想要修改一个已经存在的document只有替换他,如下:

PUT /website/blog/123
{
 
"title":"My first blog entry",
 
"text":  "I am starting to get the hang of this...",
 
"date":  "2014/01/02"
}


在响应里,可以看到,_version已经增加了,返回数据如下:

{
 
"_index":   "website",
 
"_type":    "blog",
 
"_id":      "123",
 
"_version":2,
 
"created":   falsebubuko.com,布布扣
}


标记1处表示ES中有一个document可请求添加的document拥有相同的index,type,id。也就是说这个document已经存在了。

在ES内部已经把旧的document标记为了deleted,并且添加了新的document。虽然你已经不能访问这个旧的document,但是他并没有立即被删除。ES将会在你添加更多的数据的时候在后台删除已经被标记为deleted的数据。

在稍后的章节中,我们将会讨论update api,这个api能对document的部分数据进行更新。这个api对改变document显得更为到位,然而事实上,正如以上所描述的一样ES修改一个document要执行一下过程:

1:N从旧的document中检索JSON

2:修改

3:删除旧的document

4:插入新的

唯一的不同就是update的实现方式要通过client请求,而不是get或者index请求。

 

原文:http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/update-doc.html

更新整个document(updating a whole document),布布扣,bubuko.com

更新整个document(updating a whole document)

标签:style   blog   class   c   tar   ext   

原文地址:http://www.cnblogs.com/blog1350995917/p/3730080.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!