Elasticsearch索引的操作,利用kibana 創建/刪除一個es的索引及mapping映射


 

 

 

索引的創建及刪除

1. 通過索引一篇文檔創建了一個新的索引 。這個索引采用的是默認的配置,新的字段通過動態映射的方式被添加到類型映射。

 

 

 

利用Kibana提供的DevTools來執行命令,要創建一個索引

put /sdb  (其中sdb為一個索引)

創建成功后會返回如下結果

{
  "acknowledged" : true,
  "shards_acknowledged" : true,
  "index" : "sdb"
}

如果你想禁止自動創建索引,你 可以通過在 config/elasticsearch.yml 的每個節點下添加下面的配置:

action.auto_create_index: false

 

 

{
  "sdb" : {
    "aliases" : { },
    "mappings" : { },
    "settings" : {
      "index" : {
        "creation_date" : "1552621484634",
        "number_of_shards" : "5",         //每個索引的主分片數,默認值是 5 。這個配置在索引創建后不能修改。
        "number_of_replicas" : "1",   //每個主分片的副本數,默認值是 1 。對於活動的索引庫,這個配置可以隨時修改。
        "uuid" : "PQ1TSt5hQOua_cUAegrYmw",
        "version" : {
          "created" : "6060299"
        },
        "provided_name" : "sdb"
      }
    }
  }

}

如果想修改副本數,可以用 update-index-settings API 動態修改副本數:

PUT /sdb/_settings
{
    "number_of_replicas": 1
}

 

 再次使用GET /sdb進行查看

 

 上面我們說了如何創建一個索引,那么接下來我們來說說如何刪除一個索引

DELETE /sdb 

 

 

刪除成功后會有以下提示:

{
  "acknowledged" : true
}

 

mapping映射

映射是創建索引的時候,可以預先定義字段的類型以及相關屬性

Elasticsearch會根據JSON源數據的基礎類型去猜測你想要的字段映射。將輸入的數據變成可搜索的索引項。Mapping就是我們自己定義字段的數據類型,同時告訴Elasticsearch如何索引數據以及是否可以被搜索。

 作用:會讓索引建立的更加細致和完善

 類型:靜態映射和動態映射

靜態映射

動態映射

什么是動態映射

文檔中碰到一個以前沒見過的字段時,動態映射可以自動決定該字段的類型,並對該字段添加映射

如何配置動態映射

  1. 通過dynamic屬性進行控制
  2. true:默認值,動態添加字段; false:忽略新字段; strict:碰到陌生字段,拋出異常

適用范圍

適用在根對象上或者object類型的任意字段上

內置類型

string類型: text,keyword(string類型在es5已經被棄用)

數字類型:long, integer, short, byte, double, float

日期類型: date

bool類型: boolean

binary類型: binary  

復雜類型: object ,nested

geo類型: point , geo-shape

專業類型: ip, competion

mapping 限制的type

 

 

創建mapping

PUT lagou
{
  "mappings": {
    "job":{
      "properties": {
        "title":{       //title 字段
          "type":"text"   //類型設置,text類型可分詞
        },
        "salary_min":{
          "type":"integer"
        },
        "city":{
          "type": "keyword"   //keyword關鍵詞,不可分詞
        },
        "company":{       //該字段下有多個鍵值對
          "properties": {
            "name":{
              "type":"text"
            },
            "company_addr":{
              "type":"text"
            },
            "employee_count":{
              "type":"integer"
            }
          }
        },
        "publish_date":{
          "type":"date",
          "format": "yyyy-MM-dd"
        },
        "comments":{
          "type": "integer"
        }
      }
    }
  }
}

PUT lagou/job/1
#當類型不符合的時候他會嘗試去轉換類型,比如字符串的數字和數字類型,但是如果無法轉換就會報錯。

{
  "title":"python分布式web開發",
  "salary_min":15000,
  "city":"北京",
  "company":{
    "name":"百度",
    "company_addr":"軟件園",
    "employee_count":50
  },
  "publish_date":"2017-4-16",
  "comments":15
}

 

#獲取映射

GET lagou/_mapping

GET lagou/_mapping/job  

GET _all/_mapping/job


免責聲明!

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



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