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

检索document(retrieving a document)

时间:2014-05-15 17:32:58      阅读:329      评论:0      收藏:0      [点我收藏+]

标签:blog   class   c   ext   http   int   

为了在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)

标签:blog   class   c   ext   http   int   

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

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