root object type
1、根对象类型就是mapping的对象类型,索引数据时也可以有mapping类型或者仅仅包含字段。(建议不带mapping类型
)
例子:{"字段名称":"值"} 或者 {"mapping类型":{"字段名称":"值"}}
2、索引/查询分析器
允许定义mapping类型几倍的查询与索引分析器,没有指定分析器的字段全部使用该拦截器进行分析
例子: {"mapping类型":{"index_analyzer":"索引分析器", "search_analyzer":"查询分析器"}
3、动态日期格式
在增加的索引时新增的字段会自动检查日期格式,在这里可以指定其格式
例子:{"mapping类型":{"dynamic_date_formats":["yyyy-MM-dd","dd-MM-yyyy"],"properties":{....}}}}
默认的格式是dateOptionalTime(ISO)
能够屏蔽自动日期类型检查,例子:{"mapping类型":{"date_detection":false,"":{}}}}
4、数字检测
虽然json支持本地数字类型,但是还是做为一个字符串进行提供,为了能够从字符串中自动检查到时数值,
numeric_detection将被设置为true。
{"mapping类型":{"numeric_detection":true,"":{}}}}
5、动态模版
当动态的引入字段/对象发生,它被允许定义mapping模版
格式为 {"mapping类型":{"dynamic_templates":["模板名称":{...,"mapping":{该字段对应的描述},"
match 表示允许配备的字段名称 反之:unmatch
match_mapping_type 表示配置的映射类型
path_match 表示匹配的完整的点标志路径(例如:obj1.*.) 反之path_unmatch
match_pattern 表示配置的正则表达式
{name} 用动态的json串的字段名称
{dynamictype}(or {dynamicType}) 根据具体的json字段派生出来的
当一个或者多个动态模板匹配一个字段,仅仅第一个被使用了
Array Type
一个字段包含一些core type或者object的数据被称为数组
core type数组的mapping有一个参数定义为index_name,可以通过这个查询
object数组的mapping也可以通过全路径查询(obj.field.subField)
例子:mapping type
{
"mapping类型" : {
"properties" : {
"message" : {"type" : "string"},
"tags" : {"type" : "string", "index_name" : "tag"},
"lists" : {
"properties" : {
"name" : {"type" : "string"},
"description" : {"type" : "string"}
}
}
}
}
}
访问core type数组数据:q = mapping类型.tags:字段值(或者通过index_name: q=mapping类型.tag:字段值
访问object数组数据: q = mapping类型.lists.name:字段值