Excepción INVALID_REQUEST al agregar un documento con nombres de campo repetidos a un índice con la API de búsqueda

Puedo agregar un documento a un índice cuando cada nombre de campo es único, pero cuando intento actualizar el documento (es decir, uso el mismo código para agregarlo nuevamente con la misma identificación y los mismos nombres de campo pero con uno de los nombres de campo repetidos), obtengo una AddException con el código de estado INVALID_REQUEST y el mensaje "Error al indexar [MYID]". MYID es una identificación válida. Los campos repetidos tienen el nombre, 'purchase_orderDate' y un valor de fecha truncado al día del mes usando Field.date(Date date). Mi versión del SDK de Google App Engine es Java 1.7 y obtengo la misma excepción en 1.6.

Entonces, mi pregunta es, ¿la API de búsqueda de Java Google App Engine admite campos repetidos en los documentos? Si es así, ¿por qué obtengo una excepción?

Gracias, Todd

preguntado el 27 de julio de 12 a las 16:07

2 Respuestas

Es posible que obtenga la excepción porque está tratando de agregar un documento con una identificación que ya existe. Actualmente, la búsqueda no admite la semántica de actualización. Primero intente eliminar el documento y luego "agregar" la versión actualizada.

Respondido 29 Jul 12, 12:07

Gracias por la respuesta, Will. Puedo actualizar documentos siempre que el nuevo documento no tenga nombres de campo repetidos. Además, la documentación analiza la actualización de documentos: desarrolladores.google.com/appengine/docs/java/search/…. - Todd Everett

Hm. Solo con el propósito de averiguar dónde ocurre el error, si elimina el documento y luego lo vuelve a agregar, ¿funciona? - Marrón Haldeano

He identificado otro problema que posiblemente esté relacionado: cuando intento buscar en el campo, aparece un error. Cuando busco desde el código, obtengo una SearchException. Cuando intento la misma búsqueda desde la consola de administración, aparece el mensaje "Error temporal al recuperar documentos". Aquí está la consulta que estoy intentando: buy_orderDate > 2011-1-1. No recibo este error cuando busco en otros campos en el mismo índice. - Todd Everett

Otro hallazgo: la consulta fecha_pedido_de_compra = 2012-07-16 no da como resultado un error, pero tampoco devuelve ningún documento aunque veo un documento en mi índice que tiene ese valor de fecha exacto para la fecha_pedido_de_compra. - Todd Everett

Los nombres de campo repetidos no están permitidos para los tipos de fecha y número. Pero otros tipos están bien.

Respondido el 21 de junio de 13 a las 02:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.