ElasticSearch 映射類型及數據類型區分


本文為博主原創,未經允許不得轉載:

  

1.ES 中的映射可以分為動態映射和靜態映射

  動態映射:在關系數據庫中,需要事先創建數據庫,然后在該數據庫下創建數據表,並創建表字段、類型、長度、主鍵等,最后才能基於表插入數據。而Elasticsearch中不需要定義Mapping映射(即關系型數據庫的表、字段等),在文檔寫入Elasticsearch時,會根據文檔字段自動識別類型,這種機制稱之為動態映射。

      

 

 

    靜態映射: 在Elasticsearch中也可以事先定義好映射,包含文檔的各字段類型、分詞器等,這種方式稱之為靜態映射

 

動態映射語法:

  1. 創建索引:

PUT /es_db

  2. 創建文檔

PUT /es_db/_doc/1
{
  "name": "Jack",
  "sex": 1,
  "age": 25,
  "book": "java入門至精通",
  "address": "大西北"
}

  3. 獲取文檔映射:

GET /es_db/_mapping

                                               

  4. 刪除索引

DELETE /es_db

 

靜態映射

  1. 創建索引

PUT /es_db

  2. 設置文檔映射

 PUT /es_db
{
  "mappings": {
    "properties": {
      "name": {"type": "keyword","index": true,"store": true},
      "sex": {"type": "integer","index": true,"store": true},
      "age": {"type": "integer","index": true,"store": true},
      "book": {"type": "text","index": true,"store": true},
      "address": {"type": "text", "index": true, "store": true}
    }
  }
} 

  設置book 字段的分詞器為 ik 中文分詞器:

"book": {"type": "text","index": true,"store": true,"analyzer":"ik_smart","sea rch_analyzer":"ik_smart"},

 

  3. 根據靜態映射創建文檔

PUT /es_db/_doc/1
{
  "name": "Jack",
  "sex": 1,
  "age": 25,
  "book": "elasticSearch入門至精通",
  "address": "我的大西北"
}
  

  4.  獲取文檔映射

GET /es_db/_mapping

  5. 查看 索引 創建信息

GET /es_db/_settings

 

 

數據類型:

  text:該類型被用來索引長文本,在創建索引前會將這些文本進行分詞,轉化為的組合,建立索引;允許es來檢索這些詞,text類型不能用來排序和聚合。

  keyword:該類型不能分詞,可以被用來檢索過濾、排序和聚合,keyword類型不可用text進行分詞模糊檢索。
  數值型:long、integer、short、byte、double、float
  日期型:date
  布爾型:boolean

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM