ES已经够快了,但是还能更快。把若干的请求合并到一个,避免了单个的线程请求的网络压力,ES能运行的更快。如果你知道你要检索的很多的document,使用multi-get或mget API把请求放到一个请求里要比逐次的检索效率要更高。mget API期望得到一个docs的数组作为参数,每个参数元素指... Read More
posted @ 2014-05-16 16:41 QQ1350995917 Views(371) Comments(0) Diggs(0)
就像在Updating a whole document中所说的一样,更新document的步骤就是检索——修改——插入整个document。然而使用update,就能局部更新,就像在一个请求里增加一个计数器一样。以前说过document是不可变的——不能被修改,只能被替换,update也必须遵守这... Read More
posted @ 2014-05-16 16:11 QQ1350995917 Views(826) Comments(0) Diggs(0)
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)