Elasticsearch基本语法
一、创建文档索引
1、语法格式 PUT /{index}/{type}/{id} { "field": "value", ... }
_index:文档存放在哪里 _type:文档表示的对象类别 _id:文档唯一标识
2、示例
PUT /website/blog/123 { "title": "My first blog entry", "text": "Just trying this out...", "date": "2014/01/01" }
创建索引
website
,并在索引下创建blog
类型,并添加id
为123的博文
3 响应
{
"_index": "websit",
"_type": "blog",
"_id": "123",
"_version": 1,
"result": "created",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 0,
"_primary_term": 1
}
result
值为created
表示创建
4、自动生成_id
修改请求方法
PUT
为POST
,请求路径中不再包含id,例如:POST /website/blog/
,Elasticsearch将根据自动生成策略生成id。同时,这种策略是可以自行配置修改的。
二、获取文档
1、语法
GET /{index}/{type}/{id}?pretty
请求方法:
GET
2、示例
GET /website/blog/123?pretty
pretty:格式化返回格式(_source值原样输出)
3、响应
{
"_index": "websit",
"_type": "blog",
"_id": "123",
"_version": 1,
"found": true,
"_source": {
"title": "My first blog entry",
"text": "Just trying this out...",
"date": "2014/01/01"
}
}
found:该值表示是否获取到匹配结果,
true
-匹配到,false
-未匹配到
4、指定数据返回
GET /website/blog/123?_source
当仅需要获取文档信息时,通过
_source
关键字进行过滤。
GET /website/blog/123?_source=title,text
通过
_source
参数也可以指定需要返回的数据,此处为只返回title
text
内容,关键字以,
分隔。
三、更新文档
1、执行步骤
1、从旧文档构建 JSON
2、更改该 JSON
3、删除旧文档
4、索引一个新文档
2、示例
PUT /website/blog/123
{
"title": "My first blog entry",
"text": "Just trying this out...",
"date": "2018/01/01"
}
/website/blog/123
将标识文档的唯一性,通过再次PUT
会更新对应文档信息,这实际上更像是对原索引文件的一种替换并从新进行索引。
3、响应
{
"_index": "website",
"_type": "blog",
"_id": "1",
"_version": 2
"created": false
}
修改后版本号
_version
增加
4、update关键字
使用_update
关键字指令对文档进行更新是更好的一种方式。
例如:
POST /website/blog/1/_update
{
"doc" : {
"tags" : [ "testing" ],
"views": 0
}
}
在此示例中,我们通过在url后面追加
_update
进行文档更新,同时传递我们需要更新的内容。
此处为文档/website/blog/1
添加了tags
views
和对应的值。
5、脚本部分更新文档
脚本更新同样为文档的更新提供了便捷,处理更新也变得更加灵活,此处只做简单记录。
POST /website/blog/1/_update
{
"script" : "ctx._source.views+=1"
}
通过关键字
script
进行脚本的定义。
四、删除
1、语法
DELETE /{index}/{type}/{id}
2、示例
DELETE /website/blog/123
删除
/website/blog/123
文档
3、响应
{
"found" : true,
"_index" : "website",
"_type" : "blog",
"_id" : "123",
"_version" : 3
}
如果删除文档不存在,则
found
值为false
。
转自:https://www.jianshu.com/p/a172c67bdd3e