elasticsearch中mapping中的可設定的屬性
阿新 • • 發佈:2018-11-01
mappings : 在index(庫)下建立時使用,下面可以有多個mapping 以下資料結構主要針對每個mapping進行說明:
一級屬性 | 二級屬性 | 三級屬性 | 說明 |
---|---|---|---|
dynamic | 新增欄位自動模式;true:表示自動識別新欄位並建立索引,false:不自動索引新欄位,strict:遇到未知欄位,拋異常,不能存入 | ||
_timestamp | 是否使用時間戳,ES會自動加時間戳,使用的話請百度 | ||
properties | 屬性列表(類似資料庫多個欄位定義) | ||
{欄位名} | 某個欄位的定義 | ||
type | 資料型別,參見資料型別說明 | ||
index | 對映選型,參見對映選型說明 | ||
doc_values | 布林值, 對not_analyzed欄位,預設都是開啟,分詞欄位不能使用,對排序和聚合能提升較大效能,節約記憶體 | ||
format | 如果資料型別為日期格式,傳入值得時候是字串,ES需要一個格式進行識別,如:yyyy-MM-dd HH:mm: ss | ||
analyzer | 分詞器,如ik,ansj(中文分詞) | ||
boost | 浮點型,欄位級別的分數加權(權重) | ||
ignore_above | 超過多少字元,就不處理,分詞效能損耗較大,對字串較長的可不分詞 | ||
null_value | 設定一些缺失欄位的初始化值,只有string可以使用,分詞欄位的null值也會被分詞 | ||
store | 是否單獨設定此欄位的是否儲存而從_source欄位中分離,預設是false,只能搜尋,不能獲取值 | ||
search_analyzer | 設定搜尋時的分詞器,預設跟ananlyzer是一致的,比如index時用standard+ngram,搜尋時用standard用來完成自動提示功能 | ||
其它 | similarity,term_vector,norms,include_in_all,index_options,fielddata,ignore_malformed,precision_step |
一個典型的mapping物件的屬性有:
{
"mappings": {
"my_type": {
//true:表示自動識別新欄位並建立索引,false:不自動索引新欄位,strict:遇到未知欄位,拋異常,不能存入
"dynamic": "strict",
//動態模板
"dynamic_templates": [
{ "stash_template": {
"path_match": "stash.*",
"mapping": {
"type": "string",
"index": "not_analyzed"
}
}}
],
//屬性列表
"properties": {
//一個strign型別的欄位
"title": { "type": "string"},
"stash": {
"type": "object",
"dynamic": true
}
}
}
}
}