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