部分复杂类型的总结

来源:互联网 发布:问东西的软件 编辑:程序博客网 时间:2024/06/05 19:01

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:字段值

 

原创粉丝点击