取回一个文档
get /website/blog/123?pretty
结果为:
{"_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"}}
返回文档的一部分
get /website/blog/123?_source=title,text
该 _source 字段现在包含的只是我们请求的那些字段,并且已经将 date 字段过滤掉了。
{"_index" : "website","_type" : "blog","_id" : "123","_version" : 1,"found" : true,"_source" : {"title": "My first blog entry" ,"text": "Just trying this out..."}}
或者,如果你只想得到 _source 字段,不需要任何元数据,你能使用 _source 端点:
GET /website/blog/123/_source
{"title": "My first blog entry","text": "Just trying this out...","date": "2014/01/01"}
查询多个文档
你需要从 Elasticsearch 检索很多文档,那么使用 multi-get 或者 mget API 来将这些检索请求放在一个请求中,将比逐个文档请求更快地检索到全部文档。
1、GET /_mget
2、GET /website/blog/_mget
3、GET /website/blog/_mget
{
“ids” : [ “2”, “1” ]
}
结果如下:
{"docs" : [{"_index" : "website","_type" : "blog","_id" : "2","_version" : 10,"found" : true,"_source" : {"title": "My first external blog entry","text": "This is a piece of cake..."}},{"_index" : "website","_type" : "blog","_id" : "1","found" : false}]}
查看文档是否存在
curl -i -XHEAD http://localhost:9200/website/blog/123
若返回成功则:
HTTP/1.1 200 OKContent-Type: text/plain; charset=UTF-8Content-Length: 0
若文档不存在, Elasticsearch 将返回一个 404 Not Found 的状态码。
更新整个文档
可以指定版本
PUT /website/blog/1?version=1{"title": "My first blog entry","text": "Starting to get the hang of this..."}当版本1不存在时,返回 409 Conflict HTTP 响应码,和一个如下所示的响应体:{"error": {"root_cause": [{"type": "version_conflict_engine_exception","reason": "[blog][1]: version conflict, current [2], provided [1]","index": "website","shard": "3"}],"type": "version_conflict_engine_exception","reason": "[blog][1]: version conflict, current [2], provided [1]","index": "website","shard": "3"},"status": 409}
PUT /website/blog/123
{
"title": "My first blog entry",
"text": "I am starting to get the hang of this...",
"date": "2014/01/02"
}
更新部分文档
增加字, ?retry_on_conflict=5 设置重试次数
POST /website/blog/1/_update?retry_on_conflict=5
{
"doc" : {
"tags" : [ "testing" ],
"views": 0
}
}
创建文档三种方式
1、post方式,自动生成id
POST /website/blog/
2、put方式
PUT /website/blog/123?op_type=create
PUT /website/blog/123/_create
删除文档
DELETE /website/blog/123
如果找到该文档,Elasticsearch 将要返回一个 200 ok 的 HTTP 响应码,和一个类似以下结构的响应体。
{
"found" : true,
"_index" : "website",
"_type" : "blog",
"_id" : "123",
"_version" : 3
}
如果文档没有找到,我们将得到 404 Not Found 的响应码和类似这样的响应体
{
"found" : false,
"_index" : "website",
"_type" : "blog",
"_id" : "123",
"_version" : 4
}
