**1. 创建文档**
(1)语法1:`POST /index/_doc`
```json
POST /db_01/_doc
{
"title": "小米手机",
"category": "小米",
"images": "http://www.gulixueyuan.com/xm.jpg",
"price": "3999.0"
}
```
成功返回的数据如下:
```json
{
"_index" : "db_01",
"_type" : "_doc",
"_id" : "gRBajnwBWCWQahLf3sG9", # 随机生成,相当于MySQL中的主键
"_version" : 1,
"result" : "created", # created创建成功
"_shards" : {
"total" : 2, # 分片总数
"successful" : 1, # 分片成功次数
"failed" : 0 # 分片失败次数
},
"_seq_no" : 0,
"_primary_term" : 1
}
```
(2)语法2:`POST /index/_doc/id`、`PUT /index/_doc/id`
```json
POST /db_01/_doc/2
{
"title": "小米手机",
"category": "小米",
"images": "http://www.gulixueyuan.com/xm.jpg",
"price": "3999.0"
}
```
成功返回的数据如下:
```json
{
"_index" : "db_01",
"_type" : "_doc",
"_id" : "2", # id由自己定义
"_version" : 2, #对同一个id的文档增加多次,每增加一次版本号增1
"result" : "updated",
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"_seq_no" : 3,
"_primary_term" : 2
}
```
**2. 查看文档**
(1)根据`id`查询文档:`GET /index/_doc/id`
```json
GET /db_01/_doc/2
```
成功返回的数据如下:
```json
{
"_index" : "db_01",
"_type" : "_doc",
"_id" : "2",
"_version" : 2,
"_seq_no" : 3,
"_primary_term" : 2,
"found" : true,
"_source" : {
"title" : "小米手机",
"category" : "小米",
"images" : "http://www.gulixueyuan.com/xm.jpg",
"price" : "3999.0"
}
}
```
**3. 修改文档**
(1)根据id修改文档:`POST /index/_doc/id`、`PUT /index/_doc/id`
```json
POST /db_01/_doc/2
{
"title": "小米手机",
"category": "小米",
"images": "http://www.gulixueyuan.com/xm.jpg",
"price": "3999.0"
}
```
成功后返回如下数据:
```json
{
"_index" : "db_01",
"_type" : "_doc",
"_id" : "2",
"_version" : 6, #对同一个id每修改一次,版本就会增1
"result" : "updated",
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"_seq_no" : 7,
"_primary_term" : 2
}
```
**4. 修改字段**
(1)`POST /index/_update/id`
```json
POST /db_01/_update/2
{
"doc": {
"price": 3000.0 #修改前是3999.0
}
}
```
查看修改结果`GET /db_01/_doc/2`:
```json
{
"_index" : "db_01",
"_type" : "_doc",
"_id" : "2",
"_version" : 7,
"_seq_no" : 8,
"_primary_term" : 2,
"found" : true,
"_source" : {
"title" : "小米手机",
"category" : "小米",
"images" : "http://www.gulixueyuan.com/xm.jpg",
"price" : 3000.0
}
}
```
**5. 删除文档**
删除一个文档不会立即从磁盘上移除,它只是被标记成已删除(逻辑删除)。
(1)根据id删除文档:`DELETE /index/_doc/id`
```json
DELETE /db_01/_doc/1
```
成功后返回如下数据:
```json
{
"_index" : "db_01",
"_type" : "_doc",
"_id" : "1",
"_version" : 2,
"result" : "deleted",
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"_seq_no" : 11,
"_primary_term" : 2
}
```
- Elasticsearch是什么
- 全文搜索引擎
- Elasticsearch与Solr
- 数据结构
- 安装Elasticsearch
- Linux单机安装
- Windows单机安装
- 安装Kibana
- Linux安装
- Windows安装
- es基本语句
- 索引操作
- 文档操作
- 映射操作
- 高级查询
- es-JavaAPI
- maven依赖
- 索引操作
- 文档操作
- 高级查询
- es集群搭建
- Linux集群搭建
- Windows集群搭建
- 核心概念
- 索引(Index)
- 类型(Type)
- 文档(Document)
- 字段(Field)
- 映射(Mapping)
- 分片(Shards)
- 副本(Replicas)
- 分配(Allocation)
- 系统架构
- 分布式集群
- 单节点集群
- 故障转移
- 水平扩容
- 应对故障
- 路由计算
- 分片控制
- 写流程
- 读流程
- 更新流程
- 多文档操作流程
- 分片原理
- 倒排索引
- 文档搜索
- 动态更新索引
- 近实时搜索
- 持久化变更
- 段合并
- 文档分析
- 内置分析器
- 分析器使用场景
- 测试分析器
- 指定分析器
- 自定义分析器
- 文档处理
- 文档冲突
- 乐观并发控制
- 外部系统版本控制
- es优化
- 硬件选择
- 分片策略
- 合理设置分片数
- 推迟分片分配
- 路由选择
- 写入速度优化
- 批量数据提交
- 优化存储设备
- 合理使用合并
- 减少Refresh的次数
- 加大Flush设置
- 减少副本的数量
- 内存设置
- 重要配置
- es常见问题
- 为什么要使用Elasticsearch
- master选举流程
- 集群脑裂问题
- 索引文档流程
- 更新和删除文档流程
- 搜索流程
- ES部署在Linux时的优化方法
- GC方面ES需要注意的点
- ES对大数据量的聚合实现
- 并发时保证读写一致性
- 字典树
- ES的倒排索引
- Spring Data Elasticsearch
- 环境搭建
- 索引操作
- 文档操作