Grok Processorが配列には対応していないと思いますので、全部Painless Scriptで実行するのはどうでしょうか?
POST /_ingest/pipeline/_simulate
{
"pipeline": {
"processors": [
{
"kv": {
"field": "message",
"field_split": """\s(?![\\\[\]!"#$%&'()*+,-./:;<>?@\^`{|}~\w[^ -~。-゚] ]+?(\s+|$))""",
"value_split": "="
}
},
{
"script": {
"lang": "painless",
"source": """
ctx.requestdomain = [];
for (line in ctx.request) {
def matcher = /^https?:\/{2,}(.*?)\//.matcher(line);
if (matcher.find()) {
ctx.requestdomain.add('*' + matcher.group(1).trim() + '*');
}
}
"""
}
}
],
"on_failure": [
{
"set": {
"field": "_index",
"value": "failed-index_ddi"
}
},
{
"set": {
"field": "error",
"value": "{{ _ingest.on_failure_message }}"
}
}
]
},
"docs": [
{
"_index": "aaa",
"_id": "id1",
"_source": {
"message": "request=http://aaa.com/ request=http://bbb.com/"
}
}
]
}
その結果がこちら。
{
"docs" : [
{
"doc" : {
"_index" : "aaa",
"_type" : "_doc",
"_id" : "id1",
"_source" : {
"request" : [
"http://aaa.com/",
"http://bbb.com/"
],
"requestdomain" : [
"*aaa.com*",
"*bbb.com*"
],
"message" : "request=http://aaa.com/ request=http://bbb.com/"
},
"_ingest" : {
"timestamp" : "2020-03-06T05:31:21.550618Z"
}
}
}
]
}
およそ実現されたいことができているのではないかと思います。
ただし、これを行うためには、elasticsearch.ymlに以下を記述する必要があります。
script.painless.regex.enabled: true
過去の類似の問い合わせとしては、以下になるかと思います。
ご参考になれば幸いです。