使用索引模板 Elasticsearch 6.8 禁用特定字段的映射
Disable mapping for a specific field using an Index Template Elasticsearch 6.8
我设置了 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 中有点不同,因为它有映射类型,即 not used anymore。
尝试这样的事情:
PUT _template/logstash-test
{
"index_patterns": ["logstash-*"],
"mappings": {
"_doc": {
"dynamic_templates" : [
{
"params" : {
"path_match" : "params",
"mapping" : {
"enabled": false
}
}
}
]
}
}
}
如果您的索引有不同的自定义类型并且没有使用 _doc
类型,您应该在映射中使用它。
我设置了 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 中有点不同,因为它有映射类型,即 not used anymore。
尝试这样的事情:
PUT _template/logstash-test
{
"index_patterns": ["logstash-*"],
"mappings": {
"_doc": {
"dynamic_templates" : [
{
"params" : {
"path_match" : "params",
"mapping" : {
"enabled": false
}
}
}
]
}
}
}
如果您的索引有不同的自定义类型并且没有使用 _doc
类型,您应该在映射中使用它。