elasticsearch5.4的mapping使用

在ES中,mapping至關於表結構,主要功能是告訴ES的每個filed的數據類型,同時也告訴ES如何索引數據以及數據是否能被搜索到。html

  導入數據前要定義mapping表

  ES有一個特色:能夠不提早設置index的mapping,直接能夠導入數據,而後ES會自動生成mapping表,指明每一個filed的類型以及索引方式,這個特色對於初學者很是友好,能夠直接將數據導入,而後快速檢索,可是自動生成的類型未必使咱們但願使用的類型,因此不設定mapping表就導入數據是一個很是不推薦的作法,頗有可能致使從新導入數據。java

  mapping的修改

  mapping表一旦建立,只能追加,不能修改,若是要修改,須要刪掉整個文檔,因此新建index和type的時候,須要清晰的知道表結構。json

  ES不一樣版本下的mapping設置有區別

  ES的版本更新較快,不一樣的版本的特性有必定的差別,對於elasticsearch5.4,沒有String這樣的數據類型,取而代之的是text和keyword,因此在用mapping的時候,最好閱讀最新的官方文檔 https://www.elastic.co/guideapp

  mapping表的建立方式

  首先,強烈不推薦不設定mapping表,讓ES自動識別。curl

  能夠經過curl或者kibana或者java API等各類方式導入mapping表(以在kibana下爲例):elasticsearch

PUT /test
{
  "settings": {
    "index": {
      "number_of_shards": "5",  //分5個片
      "number_of_replicas": "1"  //1個備份
    }
  },
  "mappings": {
    "t1": { //這是其中一個mapping,你還能夠建立其餘mapping
        "properties": {
          "message": {
            "type": "text"
          },
          "price": {
            "type": "double"
          },
          "tid": {
            "type": "text"
          },
          "user": {
            "type": "text"
          }
        }
    }
  }
}

上述是一個簡單的mapping的設置,index爲test,type爲t1。ide

mapping的設置還有不少特性,具體能夠參閱官方文檔https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping.htmlui

相關文章
相關標籤/搜索