一 序
本文為極客時間Elasticsearch核心技術與實戰學習筆記系列。
從這一節課開始,老師開始講述Elasticsearch基本概念。
二 文檔
2.1 文檔
Elasticsearch 是面向文檔,文檔是所有搜尋資料的最小單元。
文檔類似資料庫裡面的一條長長的存儲記錄。文檔(Document)是索引資訊的基本機關。
每個文檔都有一個uniqueID,其值不會被索引
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TP31ENVhUY2pkMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLyATM5UTNykTMwETNwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
2.2 文檔中繼資料
中繼資料是用于标注文檔的相關資訊,那麼索引文檔的中繼資料如下:
- _index 文檔所屬索引名稱
- _type 文檔所屬類型名
- _id 文檔唯一 ID
- _score 文檔相關性打分
- _source 文檔 JSON 資料
- _version 文檔版本資訊
其中 _type 文檔所屬類型名,需要關注版本不同之間差別:
- 7.0 之前,一個索引可以設定多個 types
- 7.0 開始,被 Deprecated 了。一個索引隻能建立一個 type,值為 _doc
三 索引
作為名詞,索引代表是在 Elasticsearch 叢集中,可以建立很多不同索引。
作為動詞,索引代表儲存一個文檔到 Elasticsearch。就是在 Elasticsearch 建立一個反向索引的意思
索引,就是相似類型文檔的集合。
ES 索引就是文檔的容器,是一類文檔的集合。
在devtools 執行:GET movies
{
"movies" : {
"aliases" : { },
"mappings" : {
"properties" : {
"@version" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"genre" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"id" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"title" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"year" : {
"type" : "long"
}
}
},
"settings" : {
"index" : {
"creation_date" : "1589097356250",
"number_of_shards" : "1",
"number_of_replicas" : "1",
"uuid" : "S0Ic8iLJTjKfL4wd-wGckA",
"version" : {
"created" : "7020099"
},
"provided_name" : "movies"
}
}
}
}
根據傳回結果,我們知道:
- mappings:定義文檔字段的類型
- settings:定義不同資料分布
- aliases:定義索引的别名,可以通過别名通路該索引
索引,是邏輯空間概念,每個索引有對那個的 Mapping 定義,對應的就是文檔的字段名和字段類型。相比後面會講到分片,是實體空間概念,索引中存儲資料會分散到分片上。
跟 MySQL 類比
四 REST API 友善 ES 被各種語言調用
如圖,Elasticsearch 提供了 REST API,友善,相關索引 API 如下:
#檢視索引相關資訊 GET kibana_sample_data_ecommerce #檢視索引的文檔總數 GET kibana_sample_data_ecommerce/_count #檢視前10條文檔,了解文檔格式 POST kibana_sample_data_ecommerce/_search { } #_cat indices API #檢視indices GET /_cat/indices/kibana*?v&s=index #檢視狀态為綠的索引 GET /_cat/indices?v&health=green #按照文檔個數排序 GET /_cat/indices?v&s=docs.count:desc #檢視具體的字段 GET /_cat/indices/kibana*?pri&v&h=health,index,pri,rep,docs.count,mt #How much memory is used per index? GET /_cat/indices?v&h=i,tm&s=tm:desc
使用呢dev tools查詢索引資料