### 一、創建一個索引
***
~~~
PUT 索引名/~類型名~/文檔id
{
請求體
}
~~~

以上我們創建了一個新的索引 。這個索引采用的是默認的配置,es 根據存入的文檔,自動分析出來文檔中字段的類型以及存儲方式,這種就是**動態映射**。新的字段通過動態映射的方式被添加到類型映射。現在我們需要對這個建立索引的過程做更多的控制:我們想要確保這個索引有數量適中的主分片,并且在我們索引任何數據*之前*,分析器和映射已經被建立好。
為了達到這個目的,手動創建索引,在請求體里面傳入設置或類型映射(這其實就是**靜態映射**),如下所示:
~~~
PUT /my_index
{
"settings": { ... any settings ... },
"mappings": {
"type_one": { ... any mappings ... },
"type_two": { ... any mappings ... },
...
}
}
~~~
### 二、索引設置和mapping類型和映射
***
<blockquote class="success">setting配置</blockquote>
開發過程中我們設計到同句同段的檢索,所以我們需要創建了一個名稱為sentence_paragrah_mapping的char filter,在**傳入設置**,它的目的有兩個:
* 替換`p`,`h1`,`h2`或`\n`標簽為統一的分段符:**paragraph**;
* 替換中英文`!`,`?`,`。`標點符號為統一的分頁符:**sentence**。
~~~
"settings": {
"number_of_replicas": 0,
"number_of_shards": 1,
"analysis": {
"analyzer": {
"sentence_paragrah_analyzer": {
"type": "custom",
"char_filter": [
"sentence_paragrah_mapping"
],
"tokenizer": "ik_max_word"
}
},
"char_filter": {
"sentence_paragrah_mapping": {
"type": "mapping",
"mappings": [
"""\n => \u0020sentence\u0020paragraph\u0020 """,
"""! => \u0020sentence\u0020 """,
"""? => \u0020sentence\u0020 """,
"""。 => \u0020sentence\u0020 """,
"""? => \u0020sentence\u0020 """,
"""! => \u0020sentence\u0020 """
]
}
}
}
}
~~~
<blockquote class="success">類型映射</blockquote>
除了數據庫字段要和es做一一的[類型映射](https://www.cnblogs.com/duanxz/p/5081178.html)外,我們需要全文檢索匹配文檔的多個字段或全字段,這時我們就要[`copy_to`](https://www.cnblogs.com/sanduzxcvbnm/p/12085057.html)指向一個字段,并配置[analyzer索引分詞器和search_analyzer搜索分詞器](https://blog.csdn.net/liangwenmail/article/details/112058772)。
* 字符串類型:text、keyword
* 數值類型:ling,integer,short,byte,double,float,half float,scaled float
* 日期類型:date
* te布爾值類型:boolean
* 二進制類型:binary
~~~
"mappings": {
"properties": {
"@timestamp": {
"type": "date"
},
"@version": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
}
}
},
"mainContent": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
}
},
"analyzer": "sentence_paragrah_analyzer",
"search_analyzer": "ik_smart"
},
"title": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
}
},
"analyzer": "sentence_paragrah_analyzer",
"search_analyzer": "ik_smart",
"copy_to": "mainContent"
}
}
~~~
### 三、獲取索引信息
***
~~~
GET 索引名/~類型名~/文檔id
~~~


### 四、修改索引
***
~~~
POST 索引名稱/_update/文檔id
~~~

### 五、刪除索引
***
~~~
DELETE /索引名稱/類型名稱/文檔名稱
~~~


- 前言
- Markdown教程
- ElasticSearch教程
- ElasticSearch7.6.2安裝
- Elasticsearch-head安裝
- Elasticsearch-IK中文分詞器
- ElasticSearch基礎入門
- 索引管理
- ElasticSearch深入搜索
- 結構化搜索
- 精確值查找
- 組合過濾器
- 范圍查詢
- 全文搜索
- 匹配查詢
- 組合查詢
- 跨度查詢
- Logstash教程
- Logstash的安裝
- Mysql數據同步到ES
- Kibana教程
- Kibana7.6.2安裝
- Cakephp4.x+ElasticSearch7.6.2
- Cakephp4.x的安裝和使用
- Elasticsearch-phpSDK的使用
- 安裝軟件及源碼下載
- 使用總結
- elasticsearch 7.2集群安裝部署
- 集群的安裝部署
- es集群master節點配置組合
- 分片數、副本數分配算法
- 關于集群部署的答疑解惑