一.索引
在Elasticsearch中存储数据的行为就叫做索引(indexing),ES中所有相当于传统的数据库,type相当数据表,如下图对比
Relational DB -> Databases -> Tables -> Rows -> Columns
Elasticsearch -> Indices -> Types -> Documents -> Fields
创建一个索引:使用 PUT 进行创建
PUT /lib/ // lib :索引名
{
"settings":{
"index":{
"number_of_shards":3, //数据分片,不设置默认是5
"number_of_replicas":0 //数据备份
}
}
}
查询索引:使用 GET 查询
GET /lib/_settings //查询lib的索引
GET _all/_settings //查询所有的所用
删除索引 : 使用 DELETE
DELETE lib //删除lib的索引
二.类型,文档
创建: 使用 PUT或POST 创建类型
PUT /lib/user/1 //user :是类型 1:这个类型id
PUT /lib/user/1
{
"first_name":"kale",
"last_name":"mile",
"age":22,
"about":"I like to rocke",
"interests":["music"]
}
POST /lib/user/ //使用POST生成不要指定id,ES会自动生成id
{
"first_name":"kale",
"last_name":"mile",
"age":22,
"about":"I like to rocke",
"interests":["music"]
}
查询 :使用 GET
GET lib/user/1 // 查询user为1
GET lib/user/_search //查询user总的所有数据
GET lib/user/1?_source=age,last_name // 查询user为1,只显示age和last_name字段
GET /_mget //使用_mget批量获取文档的数据
{
"docs":[
{
"_index":"lib",
"_type":"user",
"_id":1
},
{
"_index":"lib2",
"_type":"person",
"_id":1
}
]
}
GET /_mget //获取指定字段的数据 加上_source
{
"docs":[
{
"_index":"lib",
"_type":"user",
"_id":1,
"_source":"last_name" //加上 _source
},
{
"_index":"lib2",
"_type":"person",
"_id":1,
"_source":["age","last_name"]
}
]
}
GET /lib/user/_mget //在同一个文档下批量获取
{
"ids":["1","2"]
}
更新 :使用 PUT 和POST
PUT /lib/user/1 //使用PUT就是把user为1的文档直接进行覆盖,从而达到更新文档
{
"first_name":"kale",
"last_name":"lidass",
"age":32,
"about":"I like to rocke",
"interests":["music"]
}
POST /lib/user/1/_update //POST使用修改哪个地段,就添加哪个字段
{
"doc":{
"age":56
}
}
删除文档 :
DELETE lib/user/1 //删除user为1的文档