为了在ES中把document检索出来,我们使用_index,type,_id,但是请求的动作变为了GET:
GET /website/blog/123?pretty
响应的数据包括了我们已经熟悉的元素,另外还有使用JSON格式组织的document的_source字段,这个字段是我们存储的数据。
{
"_index": "website",
"_type": "blog",
"_id": "123",
"_version":1,
"found": true,
"_source": {
"title":"My first blog entry",
"text": "Just trying this out..."
"date": "2014/01/01"
}
}
pretty参数
请求体添加pretty参数是告诉ES格式化返回响应数据。但是_source字段并没有格式化打印,而是按照我们存储的原样进行输出。
响应的数据包含了{"found": true}确认了查找的document是找到了,如没有找到就是false。另外HTTP消息头就是404而不是200,可以在curl请求总加入参数 -i 这样会显示HTTP的响应消息头。
curl -i -XGET /website/blog/124?pretty
结果如下:
HTTP/1.1404NotFound
Content-Type: application/json; charset=UTF-8
Content-Length:83
{
"_index":"website",
"_type": "blog",
"_id": "124",
"found": false
}
检索部分document
默认情况下,GET请求会返回全部存储在_source中的document内容,但是也许你需要的不是全部的数据而是一部分,如title filed,单个的field使用_source参数进行查询,多个field可以指定使用逗号分割的数组。
GET /website/blog/123?_source=title,text
响应数据如下:
{
"_index": "website",
"_type": "blog",
"_id": "123",
"_version":1,
"exists": true,
"_source":{
"title":"My first blog entry",
"text": "Just trying this out..."
}
}
如果不想要元数据可以使用_source作为结束
GET /website/blog/123/_source
返回数据如下:
{
"title":"My first blog entry",
"text": "Just trying this out...",
"date": "2014/01/01"
}
原文:http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/get-doc.html
检索document(retrieving a document),布布扣,bubuko.com
检索document(retrieving a document)
原文地址:http://www.cnblogs.com/blog1350995917/p/3729893.html