ES是分布式的。当document被create,update,或者delete,这个document的新版本就会冗余到cluster的其他node中。ES是异步和并发的,意味着冗余请求也是并行进行的,并且请求到达也是无次序的。因此需要一个方式保证老版本的document不能重写新版本的数据。如上所... Read More
posted @ 2014-05-15 22:38
QQ1350995917
Views(1049)
Comments(0)
Diggs(0)
当我们使用index更新document的时候,首先读取原始的document,作出修改,然后一下在把新的document index到ES中。最后一次的操作因该是成功的,也就是说最近的一次index执行的document应该更新到ES,如果同时也有其他人在执行这个操作,那么他们的修改将会是丢失的。... Read More
posted @ 2014-05-15 20:48
QQ1350995917
Views(428)
Comments(0)
Diggs(0)
如下所示是删除一个document的语法,正如以前看到的一样,但是这次使用的是DELETE:DELETE /website/blog/123如下所示,如果找到了,ES会返回HTTP相应消息200。注意这个增加的_version号。{ "found": true, "_index": "websi... Read More
posted @ 2014-05-15 17:20
QQ1350995917
Views(220)
Comments(0)
Diggs(0)
怎么保证在存储一个document的时候是创建一个新的而不是重写了一个已经存在的document呢?回想一下,_index,_type,_id联合确定了一个document。所以最简单的方法就是使用post,让ES自动生成一个id。这样保证了id是不重复的。也就保证了每次执行index的时候是cre... Read More
posted @ 2014-05-15 16:08
QQ1350995917
Views(482)
Comments(0)
Diggs(0)
ES中的document是不可变的。如果想要修改一个已经存在的document只有替换他,如下:PUT /website/blog/123{ "title":"My first blog entry", "text": "I am starting to get the hang of this..... Read More
posted @ 2014-05-15 15:24
QQ1350995917
Views(253)
Comments(0)
Diggs(0)
如果你仅仅是要检查一个document是否存在,而对document的内容不感兴趣,你可以使用HEAD进行查询curl -i -XHEAD /website/blog/123如果document存在将会返回如下数据:HTTP/1.1200 OKContent-Type: text/plain; ch... Read More
posted @ 2014-05-15 14:11
QQ1350995917
Views(372)
Comments(0)
Diggs(0)
为了在ES中把document检索出来,我们使用_index,type,_id,但是请求的动作变为了GET:GET /website/blog/123?pretty响应的数据包括了我们已经熟悉的元素,另外还有使用JSON格式组织的document的_source字段,这个字段是我们存储的数据。{ "... Read More
posted @ 2014-05-15 14:02
QQ1350995917
Views(281)
Comments(0)
Diggs(0)
使用index api,文档就可以被插入,存储和检索。首先,我们要确定在那里存储文档。正如以前说过的,一个文档被_index _type _id共同标记了一个document。在存储数据的时候可以提供一个_id,也可以让ES帮助我们生成一个。使用自定义的ID如果你的document已经有一个唯一的标... Read More
posted @ 2014-05-15 13:34
QQ1350995917
Views(304)
Comments(0)
Diggs(0)

浙公网安备 33010602011771号