Elasticsearch對映


對映是儲存在索引中的文件的大綱。它定義資料型別,如geo_point或文件和規則中存在的欄位的字串和格式,以控制動態新增的欄位的對映。 例如,

POST http://localhost:9200/bankaccountdetails

請求正文

{
   "mappings":{
      "report":{
         "_all":{
            "enabled":true
         },

         "properties":{
            "name":{ "type":"string"}, "date":{ "type":"date"},
            "balance":{ "type":"double"}, "liability":{ "type":"double"}
         }
      }
   }
}

響應

{"acknowledged":true}

欄位資料型別
Elasticsearch支援文件中欄位的多種不同資料型別。以下資料型別用於在Elasticsearch中儲存欄位 -

  • 核心資料型別 - 這些是幾乎所有系統支援的基本資料型別,如整數,長整數,雙精度,短整型,位元組,雙精度,浮點型,字串,日期,布林和二進位制。
  • 複雜資料型別 - 這些資料型別是核心資料型別的組合。類似陣列,JSON物件和巢狀資料型別。以下是巢狀資料型別的範例 -
POST http://localhost:9200/tabletennis/team/1

請求正文

{
   "group" : "players",
   "user" : [
      {
         "first" : "dave", "last" : "jones"
      },

      {
         "first" : "kevin", "last" : "morris"
      }
   ]
}

響應

{
   "_index":"tabletennis", "_type":"team", "_id":"1", "_version":1, 
   "_shards":{"total":2, "successful":1, "failed":0}, "created":true
}
  • 地理資料型別
    這些資料型別用於定義地理屬性。 例如,geo_point用於定義經度和緯度,geo_shape用於定義不同的幾何形狀,如矩形。

  • 專用資料型別
    這些資料型別用於特殊目的,如IPv4(「ip」)接受IP地址,完成資料型別用於支援自動完成建議,token_count用於計算字串中的令牌數量。

對映型別

每個索引都具有一個或多個對映型別,用於將索引的文件劃分為邏輯組。 對映可以基於以下引數有些不同 -

  • 元欄位
    這些欄位提供有關對映和與其關聯的其他物件的資訊。 例如_index_type_id_source欄位。

  • 欄位
    不同的對映包含不同數量的欄位和具有不同資料型別的欄位。

動態對映

Elasticsearch為自動建立對映提供了一個使用者友好的機制。使用者可以將資料直接發佈到任何未定義的對映,Elasticsearch將自動建立對映,這稱為動態對映。 例如,

POST http://localhost:9200/accountdetails/tansferreport

請求正文

{
   "from_acc":"7056443341", "to_acc":"7032460534",
   "date":"11/1/2016", "amount":10000
}

響應

{
   "_index":"accountdetails", "_type":"tansferreport",
   "_id":"AVI3FeH0icjGpNBI4ake", "_version":1,
   "_shards":{"total":2, "successful":1, "failed":0},
   "created":true
}

對映引數

對映引數定義對映的結構,關於欄位和關於儲存的資訊以及如何在搜尋時分析對映的資料。 這些是以下對映引數 -

  • analyzer
  • boost
  • coerce
  • copy_to
  • doc_values
  • dynamic
  • enabled
  • fielddata
  • geohash
  • geohash_precision
  • geohash_prefix
  • format
  • ignore_above
  • ignore_malformed
  • include_in_all
  • index_options
  • lat_lon
  • index
  • fields
  • norms
  • null_value
  • position_increment_gap
  • properties
  • search_analyzer
  • similarity
  • store
  • term_vector