template

template

ES5模板查询Java API如何控制返回字段

Elasticsearchmedcl 回复了问题 • 2 人关注 • 1 个回复 • 110 次浏览 • 2018-01-19 13:24 • 来自相关话题

Logstash使用sflow插件,在kibana作图时发现数据是字符串,如何转换?

回复

Logstashyance_he 发起了问题 • 1 人关注 • 0 个回复 • 203 次浏览 • 2017-10-31 20:56 • 来自相关话题

如何使用template为所有字段指定分词器

Elasticsearchmedcl 回复了问题 • 2 人关注 • 1 个回复 • 1574 次浏览 • 2017-05-26 13:20 • 来自相关话题

index template问题

Elasticsearch三斗室 回复了问题 • 2 人关注 • 1 个回复 • 2140 次浏览 • 2016-05-07 23:14 • 来自相关话题

Day9: Elasticsearch template的order

Advent三斗室 发表了文章 • 1 个评论 • 3995 次浏览 • 2015-12-10 01:13 • 来自相关话题

ELK Stack 在入门学习过程中,必然会碰到自己修改定制索引映射(mapping)乃至模板(template)的问题。 这时候,不少比较认真看 Logstash 文档的新用户会通过下面这段配置来制定自己的模板策略:
output {
    elasticsearch {
        host => "127.0.0.1"
        manage_template => true
        template => "/path/to/mytemplate"
        template_name => "myname"
    }
}
然而随后就发现,自己辛辛苦苦修改出来的模板,通过 curl -XGET 'http://127.0.0.1:9200/_template/myname' 看也确实上传成功了,但实际新数据索引创建出来,就是没生效! 这个原因是:Logstash 默认会上传一个名叫 logstash 的模板到 ES 里。如果你在使用上面这个配置之前,曾经运行过 Logstash(一般来说都会),那么 ES 里就已经存在这么一个模板了。你可以curl -XGET 'http://127.0.0.1:9200/_template/logstash' 验证。 这个时候,ES 里就变成有两个模板,logstash 和 myname,都匹配 logstash-* 索引名,要求设置一定的映射规则了。 ES 会按照一定的规则来尝试自动 merge 多个都匹配上了的模板规则,最终运用到索引上:https://www.elastic.co/guide/e ... lates 其中要点就是:template 是可以设置 order 参数的!而不写这个参数,默认的 order 值就是 0。order 值越大,在 merge 规则的时候优先级越高。 所以,解决这个问题的办法很简单:在你自定义的 template 里,加一行,变成这样:
{
    "template" : "logstash-*",
    "order" : 1,
    "settings" : { ... },
    "mappings" : { ... }
}
当然,其实如果只从 Logstash 配置角度出发,其实更简单的办法是:直接修改原来默认的 logstash 模板,然后模板名称也不要改,就好了:
output {
    elasticsearch {
        host => "127.0.0.1"
        manage_template => true
        template_overwrite => true
    }
}
想了解更全面的 ELK Stack 知识和细节,欢迎购买我的《ELK Stack权威指南》,也欢迎加 QQ 群:315428175 哟。

谁能给我一个template demo啊

Elasticsearchlendo 回复了问题 • 4 人关注 • 2 个回复 • 3482 次浏览 • 2014-11-13 14:52 • 来自相关话题

ES5模板查询Java API如何控制返回字段

回复

Elasticsearchmedcl 回复了问题 • 2 人关注 • 1 个回复 • 110 次浏览 • 2018-01-19 13:24 • 来自相关话题

Logstash使用sflow插件,在kibana作图时发现数据是字符串,如何转换?

回复

Logstashyance_he 发起了问题 • 1 人关注 • 0 个回复 • 203 次浏览 • 2017-10-31 20:56 • 来自相关话题

如何使用template为所有字段指定分词器

回复

Elasticsearchmedcl 回复了问题 • 2 人关注 • 1 个回复 • 1574 次浏览 • 2017-05-26 13:20 • 来自相关话题

index template问题

回复

Elasticsearch三斗室 回复了问题 • 2 人关注 • 1 个回复 • 2140 次浏览 • 2016-05-07 23:14 • 来自相关话题

谁能给我一个template demo啊

回复

Elasticsearchlendo 回复了问题 • 4 人关注 • 2 个回复 • 3482 次浏览 • 2014-11-13 14:52 • 来自相关话题

Day9: Elasticsearch template的order

Advent三斗室 发表了文章 • 1 个评论 • 3995 次浏览 • 2015-12-10 01:13 • 来自相关话题

ELK Stack 在入门学习过程中,必然会碰到自己修改定制索引映射(mapping)乃至模板(template)的问题。 这时候,不少比较认真看 Logstash 文档的新用户会通过下面这段配置来制定自己的模板策略:
output {
    elasticsearch {
        host => "127.0.0.1"
        manage_template => true
        template => "/path/to/mytemplate"
        template_name => "myname"
    }
}
然而随后就发现,自己辛辛苦苦修改出来的模板,通过 curl -XGET 'http://127.0.0.1:9200/_template/myname' 看也确实上传成功了,但实际新数据索引创建出来,就是没生效! 这个原因是:Logstash 默认会上传一个名叫 logstash 的模板到 ES 里。如果你在使用上面这个配置之前,曾经运行过 Logstash(一般来说都会),那么 ES 里就已经存在这么一个模板了。你可以curl -XGET 'http://127.0.0.1:9200/_template/logstash' 验证。 这个时候,ES 里就变成有两个模板,logstash 和 myname,都匹配 logstash-* 索引名,要求设置一定的映射规则了。 ES 会按照一定的规则来尝试自动 merge 多个都匹配上了的模板规则,最终运用到索引上:https://www.elastic.co/guide/e ... lates 其中要点就是:template 是可以设置 order 参数的!而不写这个参数,默认的 order 值就是 0。order 值越大,在 merge 规则的时候优先级越高。 所以,解决这个问题的办法很简单:在你自定义的 template 里,加一行,变成这样:
{
    "template" : "logstash-*",
    "order" : 1,
    "settings" : { ... },
    "mappings" : { ... }
}
当然,其实如果只从 Logstash 配置角度出发,其实更简单的办法是:直接修改原来默认的 logstash 模板,然后模板名称也不要改,就好了:
output {
    elasticsearch {
        host => "127.0.0.1"
        manage_template => true
        template_overwrite => true
    }
}
想了解更全面的 ELK Stack 知识和细节,欢迎购买我的《ELK Stack权威指南》,也欢迎加 QQ 群:315428175 哟。