//barrabarra

JAVIER ROMERO
Programación web y escritorio
 

Error al indexar documentos en Elastic Search: MapperParsingException

julio 9, 2013 at 7:30 pm | Blog, Django, ElasticSearch, Programación | No comment

 

Hace unos minutos que he terminado de pelearme con ElasticSearch en el proyecto en el que trabajo así que vamos a dejar por aquí un apunte para que en el futuro pueda servir de referencia.

La situación es tener una instancia de un la clase JobOffer, la cual serializo, trato de antemano y envío a ES con el uso de la genial biblioteca de Python requests. El problema llega cuando el documento no se indexa y en su lugar recibo el siguiente error:

{"error":"MapperParsingException[object mapping for [joboffer] tried to parse as object, but got EOF, has a concrete value been provided to it?]","status":400}

Cuando esto -o algo similar a esto- ocurra tendrás que detenerte y examinar lado a lado la estructura en JSON que estás enviándole al índice y el mapping de dicho índice.

Cuando lo hagas, seguramente te encontrarás con que en alguna de las propiedades definidas en el mapping tiene algún atributo y que tu JSON no tiene esa atributo en esa propiedad, se ve más claro en el siguiente ejemplo, en el que primero muestro el mapping de la propiedad language (que es la que me estaba dando problemas) y a continuación el contenido del diccionario que estaba enviando:

language: {
    dynamic: "true",
    properties: {
        name: {
            type: "string"
        },
        pk: {
            type: "long",
            ignore_malformed: false
        },
    }
},

print data_dict["language"]
>> "es_ES"

Como se aprecia, en la propiedad language el mapeo esperaba recibir dos campos, pk y name, pero recibía directamente un valor “es_ES” y de ahí el error.



<< Volver al Blog Comentar la entrada

 
No hay comentarios en “Error al indexar documentos en Elastic Search: MapperParsingException”
Deja tu comentario

Categorias:

Archivo: