> 要了解Eleasticsearch,首先就要從基本的對象進行了解,這一篇是介紹什麼是文檔(Document),什麼是類型(Document Type),什麼是索引(Index),如何去建立和使用。
#### 文檔(Document)
文檔是 Elasticsearch 中可被搜尋的最小機關,文檔由多個字段的值組成,通過序列化 JSON 格式儲存在Elasticsearch中,每一個文檔都有唯一的ID。例如個人的履歷、歌曲的詳情等等都可以存儲在文檔中。
##### 文檔中繼資料
用于标注文檔的相關資訊
_index :文檔所屬的索引名
_type :文檔所屬的類型名
_id :文檔唯一ID
_source:文檔的原始 JSON 資料
_version:文檔的版本資訊
_score:相關性打分
##### 文檔字段的類型
基礎類型:
字元串 String,String還包含 text(可被索引) 和 keywork(不分詞不支援索引)
數值 包含Byte,Short,Integer,Long,Float,Double
數組類型 包含字元串和數值及對象型數組
位址位置類型 包含單一經緯度坐标 Geo-point 及區域性經緯度坐标 Geo-Shape
特殊類型包 含 IPv4,IPv6位址等類型
#### 類型(Document Type)
在 Elasticsearch 7.0 之前,一個 Index 可以建立多個 Document Type,但在 7.0 開始及之後,一個Index 隻能對應一個 Document Type,且預設是 _doc 。
#### 索引(Index)
索引是一組相同類型的文檔組合,例如歌曲索引中包含了粵語類型的歌曲文檔,通過這個索引就可以找到是以粵語類型的歌曲。
#### REST API 操作
索引的建立PUT materiel
{
"settings" : {
"number_of_shards" : 3,
"number_of_replicas": 1
},
"mappings" : {
"properties" : {
"materiel" : { "type" : "text" },
"description" : { "type" : "text" }
}
}
}
往索引中寫入文檔
POST materiel/_doc/
{
"materiel" : "10010001",
"description" : "橙汁"
}