Elasticsearch集群学习记录
1.Elasticsearch索引管理
新建索引命令
PUT 索引名
删除索引
DELETE 索引名
查看索引
GET 索引名/_settings
可同时查看多个索引。 GET 索引名1,索引名2/_settings
查看集群中所有的索引信息,命令如下: GET _all/_settings
索引的打开关闭
POST 索引名/_open 打开
POST 索引名/_close 关闭
可以同时操作多个索引,操作全部的使用这个关键字_all
2.Elasticsearch文档管理
新建文档
命令如下:
结果如下
其中index/type/id用于确定文档所在的位置,版本号会随着文档的更新自动递增,shards用于显示分片信息。如果不指定id会自动生成。上述例子去掉id后执行索引文档命令:
响应结果如下:
获取文档
使用GET API查看存存储在Elasticsearch中的文档。返回格式为json类型。
结果如下:
如果查询文档不存在,响应信息会返回 “found”:false
使用HEAD命令可以坚持一个文档是否存在。
若存在返回“200-OK”,反之返回“404-Not Found”
根据id一次获取多个文档,使用Muti GET API根据索引名、类型名、id(或路由)一次获取多个文档,返回一个文档数组。
GET blog/_mget
{
"docs":[
{
"_type":"TypeA",
"_id":"1"
},
{
"_type":"typeB",
"_id":"2"
}
]
}
如果是一个index下的不同type,可简写如下:
GET blog/article/_mget
{
"docs":[
{
"_id":"1"
},
{
"_id":"2"
}
]
}
如果index和type都相同,可简写为
GET blog/article/_mget
{
"ids":["1","2"]
}
更新文档
文档被索引后如果要更新,需要先找到这个文档,删除就得文档内容执行更新,更新完再索引。
PUT test/type1/1
{
"counter":1,
"tags":["red"]
}
POST test/type1/1/_update
{
"script":{
"inline":"ctx._source.counter+=params.count",
"lang":"painless",
"params":{
"count":4
}
}
}
inline是执行的脚本,ctx是脚本语言中的一个执行对象,painless是Elasticsearch内置的一种脚本语言,params是参数集合。使用painless脚本更新文档,通过ctx获取_source再修改counter字段,counter字段等与原值加上count参数的值。
ctx对象处理可以访问_source之外,还可以访问_index _type _id _version _routing _parent等字段。
GET test/type1/1
#explian pai