首页 > 日志服务 > elasticsearch的template和mapping
2016
08-12

elasticsearch的template和mapping

elasticsearch update mapping and template on existing index,就是给字段添加相关的属性

属性 描述 适用类型
index 值为:analyzed,not_analyzed 或者 no

analyzed 索引且分析

not_analyzed 索引但是不分析

no 不索引这个字段,这样就搜不到

默认值是analyzed

String

其他类型只能设为

no 或 not_analyzed

analyzer 可以设置索引和搜索时用的分析器,默认下elasticsearch使用的是standard分析器
除此之外,你还可以使用 whitespace、simple或english 这三种内置的分析器
all
include_in_all 默认下elasticsearch会为每一个文档定义一个特殊的域_all,它的作用就是每一个字段都将被搜索到,如果你不想让某个字段被搜索到,那么就在这字段里定义一个include_in_all=false ;默认值是true all
norms norms的作用是根据各种规范化因素去计算权值,这样方便查询;在analyzed定义字段里,值是true, not_analyzed是false all

使用ELK免不了对template和mapping做更改,使其达到想要的结果。下面说明对模板和映射的修改,使其能出现.raw聚合

一,更改template:从一个indices导出模板,再导入另一个indices

先说几个常用的请求,以最原始的logstash-*索引为例:

我们已经有了默认的logstash template,那么把现有的logstash模板导出一份,编辑一下格式,导入到一个index,然后在kibana的setting里面刷新此index即可。或者在网上找一个template导入进去

因为导入的模板开头是模板的名称,所以把前面的index_name删除,中间添加或更改,得到一个模板,再put给elasticsearch,下面是put名字为bbotte的index(上面更改)

删除今天的indices,要不就等到第二天自动生成新的indices

在kibana刷新此index

elasticsearch的template和mapping - 第1张  | linux工匠|关注运维自动化|Python开发|linux高可用集群|数据库维护|性能提优|系统架构
因为我们这里对template并木有做更改,所以日志不会有变化,查看template会有显示

需要出现.raw的聚合,其实更改的是template的mapping,所以请继续往下看

二,更新mapping

继续以默认的logstash-*为例

格式为 /index_name/type/_mapping

1,第一种方式,先获取logstash-*的mapping,按格式修改。举个栗子?,下面是logstash生成index的mapping,以修改clientRealIp、uri这两个为例:

我们修改clientRealIp和uri后,put上去,如下:

2, 第2种方式,可以用简单的方法,只提交需要更改的field,如果只修改uri:

查看更新的mapping:

同样的,删除今天的indices,在kibana刷新index

如果不清楚document_type格式,可以省略,其实就是mappings和properties中间的那一项,如果错误会得到错误提示

document_type可以从已有的template或mapping中获取,避免错误

最后我们得到的结果:

elasticsearch的template和mapping - 第2张  | linux工匠|关注运维自动化|Python开发|linux高可用集群|数据库维护|性能提优|系统架构

最后编辑:
作者:bbotte
这个作者貌似有点懒,什么都没有留下。

elasticsearch的template和mapping》有 1 条评论

  1. MolinaroOt 说:

    http://0daymusic.org

    Sustain the amazing work !! Lovin’ it!