索引模板是一种通知Elasticsearch在创立索引时如何配置索引的办法。
在创立索引之前能够先配置模板,这样在创立索引(手动创立索引或通过对文档建设索引)时,模板设置将用作创立索引的根底。
模板类型
模板有两种类型:索引模板和组件模板。
组件模板是可重用的构建块,用于配置映射,设置和别名;它们不会间接利用于一组索引。
索引模板能够蕴含组件模板的汇合,也能够间接指定设置,映射和别名。
索引模板中的优先级
可组合模板优先于旧模板。如果没有可组合模板匹配给定索引,则旧版模板可能仍匹配并被利用。
如果应用显式设置创立索引并且该索引也与索引模板匹配,则创立索引申请中的设置将优先于索引模板及其组件模板中指定的设置。
如果新数据流或索引与多个索引模板匹配,则应用优先级最高的索引模板。
内置索引模板
Elasticsearch具备内置索引模板,每个索引模板的优先级为100,实用于以下索引模式:
logs-*-*metrics-*-*synthetics-*-*
- 理论需要
在logstash中的filter模块应用了uuid这个插件生成了一个随机的uuid,logstash再将日志发往elasticsearch,因为开发须要将uuid参加到elasticsearch的聚合中,这里补充elasticsearch中的text和keyword相干内容
text : 当一个字段是要被全文搜寻的,比方Email内容、产品描述,应该应用text
类型。设置text类型当前,字段内容会被剖析,在生成倒排索引以前,字符串会被分
析器分成一个一个词项。text类型的字段不用于排序,很少用于聚合。keyword: keyword类型实用于索引结构化的字段,比方email地址、主机名、
状态码和标签。如果字段须要进行过滤(比方查找已公布博客中status属性为
published的文章)、排序、聚合。keyword类型的字段只能通过准确值搜寻到。
目标:须要将uuid的类型指定成keyword
查到索引用的是哪个索引模板,或者新建一个索引模版制订用于哪个索引,增加映射,将uuid指定为keyword,即为关键字。
在kibana的开发工具界面执行
GET _cat/templates?pretty
查问所有的模版
GET _mapping?pretty
查问所有的mapping
GET _template/logstash?pretty
- 查问指定的模版
假如返回为
{ "logstash" : { "order" : 0, "version" : 60001, "index_patterns" : [ "logstash-*", "message*" ], "settings" : { "index" : { "number_of_shards" : "1", "refresh_interval" : "5s" } }, "mappings" : { "dynamic_templates" : [ { "message_field" : { "path_match" : "message", "mapping" : { "norms" : false, "type" : "text" }, "match_mapping_type" : "string" } }, { "string_fields" : { "mapping" : { "norms" : false, "type" : "text", "fields" : { "keyword" : { "ignore_above" : 256, "type" : "keyword" } } }, "match_mapping_type" : "string", "match" : "*" } } ], "properties" : { "uuid2" : { "type" : "keyword" }, "@timestamp" : { "type" : "date" }, "geoip" : { "dynamic" : true, "type" : "object", "properties" : { "ip" : { "type" : "ip" }, "latitude" : { "type" : "half_float" }, "location" : { "type" : "geo_point" }, "longitude" : { "type" : "half_float" } } }, "@version" : { "type" : "keyword" } } }, "aliases" : { } }}
将其中的某个字段的类型,改为想要的,而后POST进来即可。
图形界面操作