elasticsearch - Mapping for Different Type of Properties -


in application have class extended 2 other classes. 2 other classes serialized in json , indexed on elasticsearch.

the problem i'm facing 2 classes extending first 1 present property same name different types (one string , other 1 object) follows:

{    "property1" : "a string",    "property2" : "another string" }  {    "property1" : "this ok first 1 string too",    "property2" : {       "propertyfromproperty2" : "this not ok"    } } 

when indexing receive following exception:

org.elasticsearch.index.mapper.mapperparsingexception: failed parse [property2]     @ org.elasticsearch.index.mapper.core.abstractfieldmapper.parse(abstractfieldmapper.java:418)     @ org.elasticsearch.index.mapper.object.objectmapper.serializeobject(objectmapper.java:517)     @ org.elasticsearch.index.mapper.object.objectmapper.parse(objectmapper.java:459)     @ org.elasticsearch.index.mapper.object.objectmapper.serializeobject(objectmapper.java:517)     @ org.elasticsearch.index.mapper.object.objectmapper.parse(objectmapper.java:459)     @ org.elasticsearch.index.mapper.object.objectmapper.serializeobject(objectmapper.java:517)     @ org.elasticsearch.index.mapper.object.objectmapper.parse(objectmapper.java:459)     @ org.elasticsearch.index.mapper.object.objectmapper.serializeobject(objectmapper.java:517)     @ org.elasticsearch.index.mapper.object.objectmapper.parse(objectmapper.java:459)     @ org.elasticsearch.index.mapper.documentmapper.parse(documentmapper.java:515)     @ org.elasticsearch.index.mapper.documentmapper.parse(documentmapper.java:462)     @ org.elasticsearch.index.shard.service.internalindexshard.preparecreate(internalindexshard.java:363)     @ org.elasticsearch.action.index.transportindexaction.shardoperationonprimary(transportindexaction.java:215)     @ org.elasticsearch.action.support.replication.transportshardreplicationoperationaction$asyncshardoperationaction.performonprimary(transportshardreplicationoperationaction.java:556)     @ org.elasticsearch.action.support.replication.transportshardreplicationoperationaction$asyncshardoperationaction$1.run(transportshardreplicationoperationaction.java:426)     @ java.util.concurrent.threadpoolexecutor$worker.runtask(threadpoolexecutor.java:886)     @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:908)     @ java.lang.thread.run(thread.java:662) caused by: org.elasticsearch.elasticsearchillegalargumentexception: unknown property [propertyfromproperty2]     @ org.elasticsearch.index.mapper.core.stringfieldmapper.parsecreatefieldforstring(stringfieldmapper.java:331)     @ org.elasticsearch.index.mapper.core.stringfieldmapper.parsecreatefield(stringfieldmapper.java:277)     @ org.elasticsearch.index.mapper.core.abstractfieldmapper.parse(abstractfieldmapper.java:408) 

what options here? though maybe use field type name in order avoid parsing errors, possible using elasticsearch?

is there solution therefore?

as said, cannot that. after first indexing request, property2 got type string.

when attempting second indexing request, trying index same property2 of type object.

this means different field types same field. not possible in elasticsearch.

as options: make first indexing request match object well. maybe this, don't know specifics of use case:

{    "property1" : "a string",    "property2" : {       "something" : "another string"    } } 

Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -