相关概念
索引(index / indices)
- 相当于MySQL中的Database
类型(type / types)
- 相当于MySQL中的Table,可以自行创建“类型”,或者,如果不关心“类型”,使用
_doc
表示类型名 - ES本身并不注重“类型”的概念,甚至在较高版本(8.x或以上)基本已废弃此概念
文档(document / documents)
- 相当于MySQL中各数据表中一行行的数据
- 在ES中每个数据都是由JSON格式组织的
字段(field / fields)
- 相当于MySQL中的Column
基于RESTful访问Elasticsearch -- -- 操作汇总 --简单操作
添加文档
添加文档(使用ES随机生成的ID值)
请求格式:
POST http://localhost:9200/{索引名}/{类型名}
提示:添加文档时,如果索引不存在,会自动创建索引,如果类型不存在,会自动创建类型!
请求示例:
### 添加文档
POST http://localhost:9200/index_crud/_doc
Content-Type: application/json
{
"id": 998,
"title": "2023新茶上市,赔本大甩卖",
"sort": 188
}
添加文档(自行指定ID值)
请求格式:
PUT http://localhost:9200/{索引名}/{类型名}/{文档ID}
请求示例:
### 添加文档(自行指定ID值)
PUT http://localhost:9200/index_crud/_doc/Tea9527
Content-Type: application/json
{
"id": 999,
"title": "2023老茶上市,卖得也相当不错",
"sort": 199
}
删除
根据ID删除文档
请求格式:
DELETE http://localhost:9200/{索引名}/{类型名}/{文档ID}
请求示例:
### 根据ID删除文档
DELETE http://localhost:9200/index_crud/_doc/Tea9527
提示:如果尝试删除的文档不存在,将响应404
错误!
删除索引
请求格式:
DELETE http://localhost:9200/{索引名}
请求示例:
### 删除索引
DELETE http://localhost:9200/index_crud
提示:如果尝试删除的索引不存在,将响应404
错误!
修改文档
修改文档(更新整篇文档)
请求格式:
PUT http://localhost:9200/{索引名}/{类型名}/{文档ID}
请求示例:
### 修改文档(更新整篇文档)
PUT http://localhost:9200/index_crud/_doc/Tea9527
Content-Type: application/json
{
"id": 999,
"title": "2023老茶上市,卖得也相当不错",
"sort": 199,
"description": "这个老茶味道很好,强烈推荐!"
}
注意:以上做法将使用请求参数替换原有的整篇文档!
修改文档(局部修改)
请求格式:
POST http://localhost:9200/{索引名}/{类型名}/{文档ID}/_update
请求参数:
{
"doc": {
需要更新的数据的参数
}
}
请求示例:
POST http://localhost:9200/index_crud/_doc/Tea9527/_update
Content-Type: application/json
{
"doc": {
"sort": 189,
"description": "老茶和新茶味道还是挺不一样,要不,买个试试?"
}
}
注意:如果请求参数中包含新的属性(原文档中没有的属性),也会更新成功,且在文档中新增新的属性!
查看文档
查看某个索引中的所有文档
请求格式:
GET http://localhost:9200/{索引名}/_search
请求示例:
### 查看某个索引中的所有文档
GET http://localhost:9200/index_crud/_search
根据ID访问文档
请求格式:
GET http://localhost:9200/{索引名}/{类型名}/{文档ID}
请求示例:
### 根据ID访问文档
GET http://localhost:9200/index_crud/_doc/yjEl3okBucTgSd_ILGK2