14.1 映射
- 类型和字段的信息存储(包含)在映射(mapping)中
- Elasticsearch支持以下简单字段类型:
14.2 映射规则
- Elasticsearch将使用动态映射猜测字段类型,这类型来自于JSON的基本数据类型,使用以下规则:
- 查看映射
GET /gb/_mapping/tweet
14.3 动态映射
- Elasticsearch最重要的功能之一是不必首先创建index、定义映射type和定义field ,只需为文档编制index,index、type和field将自动显示:
- 创建数据index、_doc映射type和名为count且数据type为long的field
PUT data/_doc/1
{ "count": 5 }
- 新field的自动检测和添加称为动态映射,可以自定义动态映射规则以满足目的:
- 动态field映射(Dynamic field mappings) ◼ 管理动态场检测的规则
- 动态模板(Dynamic templates) ◼ 为动态添加的field配置映射的自定义规则
- Index templates允许为automatically or explicitly创建的新索引配置默认映射、设置和别名
14.4 动态field映射
- 当 Elasticsearch 在文档中检测到新field时,它默认动态地将该field添加到type映射中,由dynamic参数控制此行为
- 可以通过将dynamic参数设置为true或明确指示 Elasticsearch 根据传入的文档动态创建field runtime
- 当启用动态field映射时,Elasticsearch 使用下表中的规则来确定如何映射每个field的数据type
- 可以在文档和object级别禁用动态映射
- 将dynamic参数设置为 false忽略新field,并strict在 Elasticsearch 遇到未知field时拒绝文档
- 使用 update mapping API 更新dynamic 现有field的设置
- 可以为 date detection 和 numeric detection自定义动态field映射规则
- 要定义可应用于其他动态field的自定义映射规则,需使用dynamic_templates
14.4.1 Date detection
- 如果date_detection启用(默认),则检查新的stringfield,以查看其内容是否与动态日期格式中指定的任何日期模式匹配 dynamic_date_formats
- 如果找到匹配项,date将添加一个具有相应格式的新日期field
- 默认值为dynamic_date_formats:
[ "strict_date_optional_time", "yyyy/MM/dd HH:mm:ss Z||yyyy/MM/dd Z"]
- 例如:
PUT my-index-000001/_doc/1
{
"create_date": "2015/09/02"
}
GET my-index-000001/_mapping
14.4.2 Disabling date detection
- 可以通过设置date_detection为禁用动态日期检测false
PUT my-index-000001
{
"mappings": {
"date_detection": false
}}
PUT my-index-000001/_doc/1
{
"create": "2015/09/02"
}
14.4.3 Customizing detected date formats
- dynamic_date_formats可以自定义以支持所需的 date formats:
PUT my-index-000001
{
"mappings": {
"dynamic_date_formats": ["MM/dd/yyyy"]
}}
PUT my-index-000001/_doc/1
{
"create_date": "09/25/2015"
}
14.4.4 Numeric detection
- 虽然JSON支持本机floating point和integer data types,但某些应用程序或语言有时可能会将数字呈现为string
- 通常正确的解决方案是显式映射这些field,但可以启用Numeric detection(默认情况下禁用)以自动执行此操作:
PUT my-index-000001
{
"mappings": {
"numeric_detection": true
}
}
PUT my-index-000001/_doc/1
{
"my_float": "1.0",
"my_integer": "1"
}
大数据视频推荐:
腾讯课堂
CSDN
ELK入门精讲
AIOps智能运维实战
ELK7 stack开发运维
大数据语音推荐:
ELK7 stack开发运维
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通
网友评论