[TOC]
# Mapping映射
* 什么是Mapping映射?
映射: 創建索引的時候,可以預先定義字段的類型以及相關屬性
作用: 這樣會讓索引建立得更加的細致和完善
分類: 靜態映射和動態映射
* 類型映射關系

* 映射的屬性方法
除了定義字段的類型,還可以給字段添加相關的屬性

建立映射
~~~
POST /library
{
"settings": {
"number_of_shards": 5,
"number_of_replicas": 1
},
"mappings": {
"books": {
"properties": {
"title": {"type": "string"},
"name": {"type":"string","index":"not_analyzed"},
"publish_date": {"type":"date", "index":"not_analyzed"},
"price": {"type":"double"},
"number": {"type": "integer"}
}
}
}
}
~~~
查看下
~~~
GET /library
~~~
# 動態映射
* 什么是動態映射?
文檔中碰到一個以前沒有見過的字段時,動態映射可以自動決定該字段的類型,并對該字段添加映射
* 如何配置動態映射?
通過dynamic屬性進行控制
true: 默認值,動態添加字段; false忽略新字段; strict: 碰到陌生字段,拋出異常
* 適用范圍
適用在根對象上或者object類型的任意字段上
動態映射
~~~
PUT /library
{
"mappings": {
"books": {
"dynamic": "strict",
"properties": {
"title": {"type": "string"},
"name": {"type": "string", "index": "not_analyzed"},
"publish_date": {"type": "date","index": "not_analyzed"},
"price": {"type": "double"},
"number": {
"type": "object",
"dynamic": true
}
}
}
}
}
~~~
# 管理映射
獲取映射信息
更新映射信息
刪除映射信息
~~~
# 獲取某個索引信息
GET /library/_mapping
# 獲取某個索引下某個type的映射信息
GET /library/_mapping/books
# 獲取這個集群內所有的映射信息
GET /_all/_mapping
# 獲取這個集群內某兩個或多個type的映射信息
GET /_all/_mapping/books,bank_account
~~~
~~~~
# 更新修改Mapping映射
# 很遺憾,mapping一旦建立,就不能修改現有的字段映射
# 如果要推到現有的映射,你得重新建立一個索引,然后重新定義映射
# 然后把之前索引里的數據導入到新建立的索引里
# ------具體方法-------
# 1. 給現有的索引定義一個別名,并且把現有的索引指向這個別名,運行步驟2
# 2. 運行: PUT /現有索引/_alias/別名A
# 3. 新創建一個索引,定義好最新的映射
# 4. 將別名指向新的索引,并且取消之前索引的指向,運行步驟5
# 5.運行:
POST /_aliases
{
"actions": [
{"remove": {"index":"現有索引名", "alias":"別名A"}},
{"add": {"index":"新建索引名", "alias":"別名A"}}
]
}
# 注: 通過這幾個步驟就實現了索引的平滑過渡,并且是零停機的
~~~
~~~
# 刪除映射
DELETE /library/books
DELETE /library/books/_mapping
DELETE /library/_mapping/books
~~~
- SQL
- 名詞
- mysql
- 初識mysql
- 備份和恢復
- 存儲引擎
- 數據表損壞和修復
- mysql工具
- 數據庫操作
- 增
- 刪
- 改
- 查
- 數據類型
- 整數類型
- 小數類型
- 日期時間類型
- 字符和文本型
- enum類型
- set類型
- 時間類型
- null與not null和null與空值''的區別
- 數據表操作
- 創建
- 索引
- 約束
- 表選項列表
- 表的其他語句
- 視圖
- sql增刪改查
- sql增
- sql刪
- sql改
- sql查
- sql語句練習
- 連接查詢和更新
- 常用sql語句集錦
- 函數
- 字符函數
- 數值運算符
- 比較運算符與函數
- 日期時間函數
- 信息函數
- 聚合函數
- 加密函數
- null函數
- 用戶權限管理
- 用戶管理
- 權限管理
- pdo
- 與pdo相關的幾個類
- 連接數據庫
- 使用
- pdo的錯誤處理
- pdo結果集對象
- pdo結果集對象常用方法
- pdo預處理
- 常用屬性
- mysql編程
- 事務
- 語句塊
- mysql中的變量
- 存儲函數
- 存儲過程
- 觸發器
- mysql優化
- 存儲引擎
- 字段類型
- 三范式和逆范式
- 索引
- 查詢緩存
- limit分頁優化
- 分區
- 介紹
- 分區算法
- list分區
- range范圍
- Hash哈希
- key鍵值
- 分區管理
- 特別注意
- 分表
- 數據碎片與維護
- innodb表壓縮
- 慢查詢
- explain執行計劃
- count和max,groupby優化
- 子查詢優化
- mysql鎖機制
- 介紹
- 演示
- 總結
- 樂觀鎖和悲觀鎖
- 扛得住的mysql
- 實例和故事
- 系統參數優化
- mysql體系結構
- mysql基準測試
- 索引
- mysql的復制
- win配置MySQL主從
- mysql5.7新特性
- 常見問題
- general log
- 忘記密碼
- uodo log與redo log
- 事務隔離級別
- mysql8密碼登錄
- explain
- 高效的Tree表
- on delete cascade 總結
- mongod
- 簡介
- 集合文檔操作語句
- 增刪改查
- 索引
- 數據導入和導出
- 主從復制
- php7操作mongod
- 權限管理
- redis
- redis簡介
- 3.2版本配置文件
- 3.0版本配置文件
- 2.8版本配置文件
- 配置文件總結
- 外網連接
- 持久化
- RDB備份方式保存數據
- AOF備份方式保存數據
- 總結
- win安裝redis和sentinel部署
- 事務
- Sentinel模式配置
- 分布式鎖
- 管道
- php中redis代碼
- 發布訂閱
- slowlog
- Redis4.0
- scan和keys
- elasticsearch
- 配置說明
- 啟動
- kibana
- kibana下載
- kibana配置文件
- kibana常用功能
- 常用術語
- Beats
- Beats簡介
- Filebeat
- Packetbeat
- Logstash
- 配置
- elasticsearch架構
- es1.7
- head和bigdesk插件
- 插件大全
- 倒排索引
- 單模式下API增刪改查
- mget獲取多個文檔
- 批量操作bulk
- 版本控制
- Mapping映射
- 基本查詢
- Filter過濾
- 組合查詢
- es配置文件
- es集群優化和管理
- logstash
- kibana
- es5.2
- 安裝
- 沖突處理
- 數據備份
- 缺陷不足
- 集群管理api
- 分布式事務
- CAP理論
- BASE模型
- 兩階段提交(2PC)
- TCC (Try-Confirm-Cancle)
- 異步確保型
- 最大努力通知型
- 總結