天天看點

Elasticsearch Document & Type & Index

> 要了解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 操作

Elasticsearch Document & Type & Index
索引的建立

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" : "橙汁"
}