elasticsearch之mapping配置
來自: https://segmentfault.com/a/1190000004424784
序
本文主要記錄es的schema mapping的一些配置項
mapping定義
{
"mappings": {
"post": {
"properties": {
"id": {"type":"long", "store":"yes", "precision_step":"8" },
"name": {"type":"string", "store":"yes", "index":"analyzed" },
"published": {"type":"date", "store":"yes", "precision_step":"8" },
"contents": {"type":"string", "store":"no", "index":"analyzed" }
}
}
}
} 或者
{
"book" : {
"_index" : {
"enabled" : true
},
"_id" : {
"index": "not_analyzed",
"store" : "yes"
},
"properties" : {
"author" : {
"type" : "string"
},
"characters" : {
"type" : "string"
},
"copies" : {
"type" : "long",
"ignore_malformed" : false
},
"otitle" : {
"type" : "string"
},
"tags" : {
"type" : "string"
},
"title" : {
"type" : "string",
"fields":{
"sort":{"type":"string","index":"not_analyzed"}
}
},
"year" : {
"type" : "long",
"ignore_malformed" : false,
"index" : "analyzed"
},
"available" : {
"type" : "boolean"
}
}
}
} 屬性解說
index
可選值為analyzed(默認)和no,如果是字段是字符串類型的,則可以是not_analyzed.store
可選值為yes或no,指定該字段的原始值是否被寫入索引中,默認為no,即結果中不能返回該字段。boost
默認為1,定義了文檔中該字段的重要性,越高越重要null_value
如果一個字段為null值(空數組或者數組都是null值)的話不會被索引及搜索到,null_value參數可以顯示替代null values為指定值,這樣使得字段可以被搜索到。include_in_all
指定該字段是否應該包括在_all字段里頭,默認情況下都會包含。
mapping操作
新建mapping
curl -s -XPOST '192.168.99.100:9200/library' --data-binary @mapping.json
更新mapping
curl -XPOST '192.168.99.100:9200/library/book/_mapping' -d'
{
"book": {
"properties": {
"description": {
"type": "string",
"store": "yes",
"index": "analyzed"
}
}
}
}
' 查看mapping
curl -XGET '192.168.99.100:9200/library/book/_mapping?pretty'
返回
{
"library" : {
"mappings" : {
"book" : {
"properties" : {
"author" : {
"type" : "string"
},
"available" : {
"type" : "boolean"
},
"characters" : {
"type" : "string"
},
"copies" : {
"type" : "long"
},
"description" : {
"type" : "string",
"store" : true
},
"otitle" : {
"type" : "string"
},
"section" : {
"type" : "long"
},
"tags" : {
"type" : "string"
},
"title" : {
"type" : "string"
},
"year" : {
"type" : "long"
}
}
}
}
}
} 可以修改的項:
增加新的類型定義
增加新的字段
增加新的分析器
不允許修改的項:
更改字段類型(
比如文本改為數字)更改存儲為不存儲,反之亦然
更改索引屬性的值
更改已索引文檔的分析器
注意的是新增字段或更改分析器之后,需要再次對所有文檔進行索引重建
字段的數據類型
簡單類型
string(
指定分詞器)date(
默認使用UTC保持,也可以使用format指定格式)數值類型(
byte,short,integer,long,float,double)boolean
binary(
存儲在索引中的二進制數據的base64表示,比如圖像,只存儲不索引)ip(
以數字形式簡化IPV4地址的使用,可以被索引、排序并使用IP值做范圍查詢).
有層級結構的類型
比如object 或者 nested.
特殊類型
比如geo_point, geo_shape, or completion.
參考
本文由用戶 wzazwerfhj 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!