I writing an application to index application logs into Elasticsearch. I'm
having a problem when the type of a property changes in my data.
The following works fine
$ curl -XPOST http://localhost:9200/idx1/typ1 -d '
{"data": [
"0d7e6233e5f48b4f55c5376bf00b1be5",
"0d7e6233e5f48b4f55c5376bf00d94cf"
]}'
{"ok":true,"_index":"idx1","_type":"typ1","_id":"ntIyc5qfTnOPOz9uJ2dALg","_version":1}
But when I try to index another data point I run into the following problem
$ curl -XPOST http://localhost:9200/idx1/typ1 -d '
{"data":[
{
"k1":"val1"
},
{
"k2":"val2",
"k3":"val3"
}
],}'
{"error":"MapperParsingException[failed to parse [data]]; nested:
ElasticSearchIllegalArgumentException[unknown property [text]];
","status":400}
I understand that Elasticsearch does not allow the type of a property to
be changed and that's causing the above Exception. I am usinn dynamic
mapping.Is there anyway I can circumvent this problem. I have tried the
following solutions :
- As suggested here
http://stackoverflow.com/questions/15583032/nested-documents-in-elasticsearch to
split my data. - To use some kind of a filter so that Elasticsearch always considers the
fielddata
to be an array of nested objects instead of an arrays of
strings
The problem with the above two solutions are that I have several fields
which have the above characteristics and not all of them are known before
hand. So there could be a new field that's added to my data which behaves
roguely.
My question is there a standard procedure to seal with such indexing
issues. Any help will be much appreciated. I am using 0.90.5 on a centos5
host.
--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/21b999d3-fe90-48b7-aaaa-a93f3c02e5f3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.