我试图在摄取节点管道中使用“拆分”处理器将字符串拆分为数组后访问数组元素?
我有一个用斜杠('/')分隔的长字符串。我只想将一个子字符串传递给索引,然后转储其余的。
例如,我有一个字符串“/aaa/bbb/ccc”。我只想索引“ccc”。
我目前的想法是使用split + set + remove,但是我不知道如何访问拆分后的数组元素。
PS:如果我使用 Logstash 有解决方案吗?
我试图在摄取节点管道中使用“拆分”处理器将字符串拆分为数组后访问数组元素?
我有一个用斜杠('/')分隔的长字符串。我只想将一个子字符串传递给索引,然后转储其余的。
例如,我有一个字符串“/aaa/bbb/ccc”。我只想索引“ccc”。
我目前的想法是使用split + set + remove,但是我不知道如何访问拆分后的数组元素。
PS:如果我使用 Logstash 有解决方案吗?
您可以使用script
处理器
POST _ingest/pipeline/_simulate
{
"pipeline" :
{
"description": "_description",
"processors": [
{
"script" : {
"inline" : "ctx.foo = ctx.foo.substring(ctx.foo.lastIndexOf('/') + 1)"
}
}
]
},
"docs": [
{
"_index": "index",
"_type": "type",
"_id": "id",
"_source": {
"foo": "/divided/by/slashes"
}
}
]
}
返回
{
"docs": [
{
"doc": {
"_id": "id",
"_type": "type",
"_index": "index",
"_source": {
"foo": "slashes"
},
"_ingest": {
"timestamp": "2017-06-23T14:53:46.871Z"
}
}
}
]
}
请注意,这不是完全故障安全的,但应该给您一个初步的想法。