**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
- 環境搭建
- 索引操作
- 文檔操作