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
}
}
}
}
}