I have an XML structure
<Event>
<Core Id="10233" />
<Parameters>
<Parameter EngValue="1.0" DecValue="1.0" />
<Parameter EngValue="GCOM" />
<Parameter EngValue="1.0" DecValue="1.0" />
</Parameters>
</Event>
I'd like logstash to output this structure :
{
"CoreID" : "10233",
"Parameter" : [
{
"EngValue" : "1.0",
"DecValue" : "1.0"
},
{
"EngValue" : "GCOM"
},
{
"EngValue" : "1.0",
"DecValue" : "1.0"
}
]
}
I have this mapping in ES :
"mappings" : {
"logs" : {
"properties" : {
"CoreId" :{
"type" : "text"
},
"Parameter" : {
"type" : "nested",
"properties" : {
"DecValue" : {
"type" : "float"
},
"EngValue" : {
"type" : "text"
}
}
}
}
}
}
With the XML filter I tried :
xpath => [
"/Event/Core/@Id", "CoreID",
"/Event/Parameters/Parameter/@DecValue", "[Parameter][DecValue]",
"/Event/Parameters/Parameter/@EngValue", "[Parameter][EngValue]",
]
But so far I only got this :
{
"CoreID" : "10233",
"Parameter" : {
"EngValue" : ["1.0", "GCOM", "1.0"],
"DecValue" : ["1.0", "1.0"]
}
}
Any idea how I can achieve this?
How can I make "Parameter" the array instead of its attributes?