I don't think this is possible with just the split
processor. Instead, you can first split into a temporary field, and then next use three set
processors to assign the different array elements to the different fields:
POST _ingest/pipeline/_simulate
{
"pipeline": {
"description": "split words on line_number field",
"processors": [
{
"split": {
"field": "line_number",
"separator": "\\.+",
"target_field": "temporary_field"
}
},
{
"set": {
"field": "field1",
"value": "{{temporary_field.0}}"
}
},
{
"set": {
"field": "field2",
"value": "{{temporary_field.1}}"
}
},
{
"set": {
"field": "field3",
"value": "{{temporary_field.2}}"
}
},
{
"remove": {
"field": "temporary_field"
}
}
]
},
"docs": [
{
"_source": {
"line_number": "1.2.3"
}
}
]
}