elasticsearch-獲取

檢索文檔

想要從Elasticsearch中獲取文檔,咱們使用一樣的_index、_type、_id,可是HTTP方法改成GET:web

GET /website/blog/123?prettyjson

響應包含了如今熟悉的元數據節點,增長了_source字段,它包含了在建立索引時咱們發送給Elasticsearch的原始文檔。app

{curl

  "_index" :   "website",this

  "_type" :    "blog",url

  "_id" :      "123",spa

  "_version" : 1,blog

  "found" :    true,索引

  "_source" :  {文檔

      "title": "My first blog entry",

      "text":  "Just trying this out...",

      "date":  "2014/01/01"

  }

}

pretty

在任意的查詢字符串中增長pretty參數,相似於上面的例子。會讓Elasticsearch美化輸出(pretty-print)JSON響應以便更加容易閱讀。_source字段不會被美化,它的樣子與咱們輸入的一致。

GET請求返回的響應內容包括{"found": true}。這意味着文檔已經找到。若是咱們請求一個不存在的文檔,依舊會獲得一個JSON,不過found值變成了false。此外,HTTP響應狀態碼也會變成404.

咱們能夠在curl後加-i參數獲得響應頭:

curl -i -XGET http://localhost:9200/website/blog/124?pretty

如今響應相似於這樣:

HTTP/1.1 404 Not Found

Content-Type: application/json; charset=UTF-8

Content-Length: 83

 

{

  "_index" : "website",

  "_type" :  "blog",

  "_id" :    "124",

  "found" :  false

}

檢索文檔的一部分

一般,GET請求將返回文檔的所有,存儲在_source參數中。可是可能你感興趣的字段只是title。請求個別字段能夠使用_source參數。多個字段能夠使用逗號分隔:

GET /website/blog/123?_source=title,text

_source字段如今只包含咱們請求的字段,並且過濾了date字段:

{

  "_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"

}

相關文章
相關標籤/搜索