文档API
8.2.1.快速上手 文档通过 _index、_type、_id 元数据(metadata),确定 URL 唯一 GET /<_index>/<_type>/<_id> # curl -XPUT 'http://localhost:9200/website/profile/1' -d '{ "name" : "neo", "nickname" : "netkiller", "age" : "35", "message" : "Helloworld !!!" }' # curl -XGET 'http://localhost:9200/website/profile/1?pretty' { "_index" : "website", "_type" : "profile", "_id" : "1", "_version" : 1, "found" : true, "_source" : { "name" : "neo", "nickname" : "netkiller", "age" : "35", "message" : "Helloworld !!!" } } # curl -XPUT 'http://localhost:9200/website/blog/1?pretty' -d '{ > "title": "My first blog entry", > "text": "Just trying this out...", > "date": "2014/01/01" > }' { "_index" : "website", "_type" : "blog", "_id" : "1", "_version" : 1, "_shards" : { "total" : 2, "successful" : 1, "failed" : 0 }, "created" : true } 后面会详细讲解 PUT与GET的使用方法以及相关参数 8.2.2.写入 PUT/POST 通过 PUT 写入数据 [root@localhost ~]# curl -XPUT 'http://localhost:9200/twitter/tweet/1' -d '{ > "user" : "kimchy", > "post_date" : "2009-11-15T14:12:12", > "message" : "trying out Elasticsearch" > }' {"_index":"twitter","_type":"tweet","_id":"1","_version":1,"_shards":{"total":2,"successful":1,"failed":0},"created":true} 使用 UUID 替代 _id, 注意使用UUID 必须使用 POST方式提交,不能使用 PUT。 curl -XPOST 'http://localhost:9200/website/news/?pretty' -d '{ "title": "My first news entry", "text": "Just trying this out..." }' { "_index" : "website", "_type" : "news1", "_id" : "AVY0RJrvJRTrBLpmYzBH", "_version" : 1, "_shards" : { "total" : 2, "successful" : 1, "failed" : 0 }, "created" : true } curl -XGET 'http://localhost:9200/website/news/AVY0RJrvJRTrBLpmYzBH?pretty' 提交后会输出 "_id" : "AVY0RJrvJRTrBLpmYzBH",查询时将此放到放到URL中即可。 8.2.3.获取 GET 通过 GET 读取数据 [root@localhost ~]# curl -XGET 'http://localhost:9200/twitter/tweet/1' {"_index":"twitter","_type":"tweet","_id":"1","_version":1,"found":true,"_source":{ "user" : "kimchy", "post_date" : "2009-11-15T14:12:12", "message" : "trying out Elasticsearch" }} 8.2.3.1._source 只返回 _source 数据,去掉元数据 # curl -XGET 'http://localhost:9200/website/news1/AVY0Q4SqdtH0Up0t-WB2/_source?pretty' { "title" : "My first news entry", "text" : "Just trying this out..." } 选择字段 _source=title,超过一个字段使用逗号分隔_source=title,text。 # curl -XGET 'http://localhost:9200/website/news1/AVY0Q4SqdtH0Up0t-WB2?_source=title&pretty' { "_index" : "website", "_type" : "news1", "_id" : "AVY0Q4SqdtH0Up0t-WB2", "_version" : 1, "found" : true, "_source" : { "title" : "My first news entry" } } # curl -XGET 'http://localhost:9200/website/news1/AVY0Q4SqdtH0Up0t-WB2?_source=title,text&pretty' { "_index" : "website", "_type" : "news1", "_id" : "AVY0Q4SqdtH0Up0t-WB2", "_version" : 1, "found" : true, "_source" : { "text" : "Just trying this out...", "title" : "My first news entry" } } 8.2.4.检查记录是否存在 [root@localhost elasticsearch]# curl -i -XHEAD http://localhost:9200/website/blog/1 HTTP/1.1 200 OK Content-Type: text/plain; charset=UTF-8 Content-Length: 0 [root@localhost elasticsearch]# curl -i -XHEAD http://localhost:9200/website/blog/100 HTTP/1.1 404 Not Found Content-Type: text/plain; charset=UTF-8 Content-Length: 0 HTTP/1.1 200 OK 表示已经找到你要的数据 HTTP/1.1 404 Not Found 表示数据不存在 8.2.5.删除 Delete 删除 _index curl -XDELETE http://localhost:9200/information/?pretty 删除 _mapping curl -XDELETE http://localhost:9200/information/news/_mapping?pretty 删除对象 curl -XDELETE http://localhost:9200/information/news/1?pretty 8.2.6.参数 8.2.6.1.pretty 格式化 json # curl -XGET 'http://localhost:9200/twitter/tweet/1?pretty' { "_index" : "twitter", "_type" : "tweet", "_id" : "1", "_version" : 1, "found" : true, "_source" : { "user" : "kimchy", "post_date" : "2009-11-15T14:12:12", "message" : "trying out Elasticsearch" } } 原文出处:Netkiller 系列 手札 本文作者:陈景峯 转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。