_cat
- GET /_cat/nodes:查看所有节点
- GET /_cat/health:查看 es 健康状况
- GET /_cat/master:查看主节点
- GET /_cat/indices:查看所有索引 show databases
创建索引
PUT /demo81
{
"mappings": {
"properties": {
"title": {
"type": "text",
"analyzer": "ik_smart"
},
"tag": {
"type": "keyword"
},
"publishTime": {
"type": "date"
}
}
}
}
索引一个文档(保存)
保存一个数据,保存在哪个索引的哪个类型下,指定用哪个唯一标识 在 customer 索引下的 external 类型下保存 1 号数据为
PUT customer/external/1
{
"name": "John Doe"
}
PUT 和 POST 都可以
- POST 新增。如果不指定 id,会自动生成 id。指定 id 就会修改这个数据,并新增版本号
- PUT 可以新增可以修改。PUT 必须指定 id。由于 PUT 需要指定 id,我们一般都用来做修改 操作,不指定 id 会报错。
查询文档
GET customer/external/1
{
"_index": "customer", //在哪个索引
"_type": "external", //在哪个类型
"_id": "1", //记录 id
"_version": 2, //版本号
"_seq_no": 1, //并发控制字段,每次更新就会+1,用来做乐观锁
"_primary_term": 1, //同上,主分片重新分配,如重启,就会变化
"found": true, "_source": { //真正的内容
"name": "John Doe"
}
}
乐观锁
更新携带 ?if_seq_no=0&if_primary_term=1
更新文档
POST customer/external/1/_update
{
"doc":
{
"name": "John Doew"
}
}
带_update 操作会对比源文档数据,如果相同不会有什么操作,文档 version 不增加
POST customer/external/1
{
"name": "John Doe2"
}
PUT customer/external/1
{
"name": "John Doe"
}
PUT 操作总会将数据重新保存并增加 version 版本
看场景:对于大并发更新,不带 update; 对于大并发查询偶尔更新,带 update;对比更新,重新计算分配规则。
删除文档&索引
DELETE customer/external/1
DELETE customer
bulk批量API
POST customer/external/_bulk
{"index":{"_id":"1"}}
{"name": "John Doe" }
{"index":{"_id":"2"}}
{"name": "Jane Doe" }
POST /customer/_doc/_bulk
{"index":{"_id":"13"}}
{"name":"tzptest13"}
{"delete":{"_id":"11"}}
{"create":{"_id":"14"}}
{"name":"tzptest14"}