我正在使用 gsub 处理器在 Elasticsearch 中创建摄取管道,但在文档上测试管道时不断收到此错误。我必须在摄取之前添加一个唯一的分隔符来处理空格问题。我现在尝试用空格替换该分隔符。分隔符是 |x|我的 gsub 处理器配置是
^\\|x\\|$
。我会使用“ignore_failure”,但是如果处理器找不到我要修改的字段,它将永远不会真正工作。
谢谢。
您收到的错误只是意味着处理器找不到您想要替换的字段。由于在这种情况下没有任何内容可以替换,并且您希望某些字段没有该字段,因此您可以通过向处理器添加“ignore_missing”来简单地抑制错误:
POST /_ingest/pipeline/_simulate
{
"pipeline" :
{
"description": "_description",
"processors": [
{
"gsub": {
"field" : "field.query",
"pattern": "^\\|x\\|$",
"replacement": " ",
"ignore_missing": true
}
}
]
},
"docs": [
{
"_index": "index",
"_id": "id",
"_source": {
"field": {
"query": "foo|x|bar"
}
}
},
{
"_index": "index",
"_id": "id",
"_source": {
"no_field": "foobar"
}
}
]
}