添加索引
// lib 是索引名称
PUT /lib/
{
"settings":{
"index":{
// 设置分片数量
"number_of_shards": 5,
// 设置备份数量
"number_of_replicas": 1
}
}
}
添加默认索引
// 在 elasticsearch 7.1.1 中默认分片数量是1,备份数量也是1.
PUT lib
获取索引配置
查看指定索引:
GET /index_name/_settings
返回结果如下
{
"lib2" : {
"settings" : {
"index" : {
"creation_date" : "1561026584820",
"number_of_shards" : "1",
"number_of_replicas" : "1",
"uuid" : "jYofi-2ZRd-r7SiLpeCLxw",
"version" : {
"created" : "7010199"
},
"provided_name" : "lib2"
}
}
}
}
查看所有索引:
GET _all/_settings
添加文档
指定文档ID添加文档:
指定文档 ID 用 PUT 方式。
PUT /lib/user/1
{
//字符串类型
"first_name" : "Jane",
//字符串类型
"last_name" : "Smith",
//数值类型
"age" : 32,
//字符串类型
"about" : "I like to collect rock albums",
//数组类型
"interests": [ "music" ]
}
不指定文档ID添加文档:
指定文档 ID 用 POST 方式。
POST /lib/user/
{
"first_name" : "Douglas",
"last_name" : "Fir",
"age" : 23,
"about": "I like to build cabinets",
"interests": [ "forestry" ]
}
查询文档
根据ID查询文档:
GET /lib/user/1
根据ID查询文档部分内容:
GET /lib/user/1?_source=age,interests
修改文档
覆盖文档进行更新:
该方式使用 PUT 进行更新。
PUT /lib/user/1
{
"first_name" : "Jane",
"last_name" : "Smith",
"age" : 36,
"about" : "I like to collect rock albums",
"interests": [ "music" ]
}
字段直接更新:
该方式使用 POST 进行更新。
POST /lib/user/1/_update
{
"doc":{
"age":33
}
}
删除文档
DELETE /lib/user/1
批量获取
GET /_mget
{
"docs":[
{
"_index": "lib",
"_type": "user",
"_id": 1,
// 指定字段 非必须
"_source": "interests"
},
{
"_index": "lib",
"_type": "user",
"_id": 1,
// 指定字段 非必须
"_source": ["age","interests"]
}
]
}
获取同索引同类型下的不同文档:
GET /lib/user/_mget
{
"docs":[
{
"_id": 1
},
{
"_type": "user",
"_id": 2,
}
]
}
GET /lib/user/_mget
{
"ids": ["1","2"]
}
批量操作
bulk的格式:
{action:{metadata}}
{requstbody}
-
action:(行为)
-
create:文档不存在时创建
update:更新文档
index:创建新文档或替换已有文档
delete:删除一个文档
metadata:
-
_index,_type,_id
create 和index的区别
-
如果数据存在,使用create操作失败,会提示文档已经存在,使用index则可以成功执行。
示例:
批量删除
{"delete":{"_index":"lib","_type":"user","_id":"1"}}
批量添加
POST /lib2/books/_bulk
{"index":{"_id":1}}
{"title":"Java","price":55}
{"index":{"_id":2}}
{"title":"Html5","price":45}
{"index":{"_id":3}}
{"title":"Php","price":35}
{"index":{"_id":4}}
{"title":"Python","price":50}