我设置了一个EFK管道。每天都会使用logstash-*前缀创建一个新索引。Fluentd每次发送新字段时,都会将该字段添加到索引模式logstash-*中。我正在尝试创建一个索引模板,该模板将在创建索引时禁用对特定字段的索引。我使用下面的PUT在ES 7.1中实现了这一点:
PUT _template/logstash-test
{
"index_patterns": ["logstash-*"],
"mappings": {
"dynamic_templates" : [
{
"params" : {
"path_match" : "params",
"mapping" : {
"enabled": false
}
}
}
]
}
}
然而,当我在Elasticsearch 6.8上尝试时,我得到了以下错误:
"type": "illegal_argument_exception",
"reason": "Malformed [mappings] section for type [dynamic_templates], should include an inner object describing the mapping"
它在Elasticsearch 6.X中有点不同,因为它有映射类型,现在不再使用了。
试试这样的东西:
PUT _template/logstash-test
{
"index_patterns": ["logstash-*"],
"mappings": {
"_doc": {
"dynamic_templates" : [
{
"params" : {
"path_match" : "params",
"mapping" : {
"enabled": false
}
}
}
]
}
}
}
如果索引具有不同的自定义类型,并且没有使用_doc
类型,则应在映射中使用该类型。