I am trying to use Ingest pipeline for nested object and I am getting error.
"type" : "ingest_processor_exception",
"reason" : "java.lang.IllegalArgumentException: field [content] not present as part of path [content]",
This is my Index which has nested type..
{
"settings": {
"index": {
"analysis": {
"analyzer": {
"windows_path_hierarchy_analyzer": {
"type": "custom",
"tokenizer": "windows_path_hierarchy_tokenizer"
}
},
"tokenizer": {
"windows_path_hierarchy_tokenizer": {
"type": "path_hierarchy",
"delimiter": "\"
}
}
},
"number_of_shards": "1",
"number_of_replicas": "1"
}
},
"mappings": {
"_doc": {
"properties": {
"casePartList": {
"type": "nested"
},
"isRead": {
"type": "boolean"
},
"CreationDate": {
"type": "text",
"fields": {
"keyword": {
"ignore_above": 256.0,
"type": "keyword"
}
}
},
"userId": {
"type": "keyword"
},
"titleKey": {
"type": "text",
"fields": {
"keyword": {
"ignore_above": 256.0,
"type": "keyword"
}
}
},
"regimeNumber": {
"type": "text",
"fields": {
"keyword": {
"ignore_above": 256.0,
"type": "keyword"
}
}
},
"documentList": {
"type": "nested",
"properties": {
"path": {
"analyzer": "windows_path_hierarchy_analyzer",
"type": "text"
},
"attachment": {
"properties": {
"date": {
"type": "date"
},
"indexed_chars": {
"type": "long"
},
"content_type": {
"type": "text",
"fields": {
"keyword": {
"ignore_above": 256.0,
"type": "keyword"
}
}
},
"keywords": {
"type": "text",
"fields": {
"keyword": {
"ignore_above": 256.0,
"type": "keyword"
}
}
},
"author": {
"type": "text",
"fields": {
"keyword": {
"ignore_above": 256.0,
"type": "keyword"
}
}
},
"containsMetadata": {
"type": "boolean"
},
"name": {
"type": "text",
"fields": {
"keyword": {
"ignore_above": 256.0,
"type": "keyword"
}
}
},
"language": {
"type": "text",
"fields": {
"keyword": {
"ignore_above": 256.0,
"type": "keyword"
}
}
},
"title": {
"type": "text",
"fields": {
"keyword": {
"ignore_above": 256.0,
"type": "keyword"
}
}
},
"content": {
"type": "text",
"fields": {
"keyword": {
"ignore_above": 256.0,
"type": "keyword"
}
}
},
"content_length": {
"type": "long"
},
"detect_language": {
"type": "boolean"
}
}
},
"id": {
"type": "integer"
},
"documentTitle": {
"type": "keyword"
},
"incidentId": {
"type": "integer"
},
"content": {
"type": "text",
"fields": {
"keyword": {
"ignore_above": 256.0,
"type": "keyword"
}
}
}
}
},
"caseId": {
"type": "integer"
},
"regimeName": {
"type": "text",
"fields": {
"keyword": {
"ignore_above": 256.0,
"type": "keyword"
}
}
},
"caseName": {
"type": "keyword"
},
"folderName": {
"type": "text",
"fields": {
"keyword": {
"ignore_above": 256.0,
"type": "keyword"
}
}
},
"iD": {
"type": "integer"
},
"incidentId": {
"type": "integer"
}
}
}
}
}
my ingest pipeline is
{"description":"Document attachment pipeline","processors":[{"attachment":{"field":"content","target_field":"attachment"}},{"remove":{"field":["content"]}}]}
Actual C# Code using NEST:
var IngestPipeline = _esProvider.Client.Ingest.PutPipeline("attachments", p => p
.Description("Document attachment pipeline")
.Processors(pr => pr
.Attachment<Document>(a => a
.Field(f => f.Content)
.TargetField(f => f.Attachment)
)
.Remove<Document>(r => r
.Field(f => f.Field(cx => cx.Content))
)
)
);
}
Index is getting created but when i try to create document it gives below error
"type" : "ingest_processor_exception",
"reason" : "java.lang.IllegalArgumentException: field [content] not present as part of path [content]",
I think my ingest pipeline is not properly mapped with Document type which is nested type of Incident.
I am new to elastic search. Can you please guide me for this issue?