es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Campo multiValued de Solr fallando después de la actualización a la versión 7.7.3 desde la versión 5.5.4.

Actualización de un esquema para Solr 7.7.3, originalmente funcional en Solr 5.5.4.

Para un campo definido de esta manera:
<field name= " my_field " type= " string " indexed= " true " stored= " true " multiValued= " true " />

Solr recibe un diccionario de una aplicación web de Python que contiene valores que son originalmente una cadena de estilo csv desde un cuadro de texto de formulario:
“Valor mágico, Visual-C PlusPlus, ABC123”

Divido la cadena en las comas (y elimino espacios en blanco). Luego, Solr recibe los valores para el campo como una matriz.

Esto funcionó en Solr 5.5.4. Solr 7.7.3 se queja del campo mientras reconstruye su índice, con:
“se encontraron múltiples valores para el campo no multiValued, my_field: [Magic Value, Visual-C PlusPlus, ABC123]”

Implementé la corrección de la matriz anterior para satisfacer este error en primer lugar. ¿Por qué está fallando de nuevo con el cambio de versión? ¿Qué espera Solr?

Lo único que puedo suponer dada la mayoría de la documentación de multiValued, o dada la mayoría de las respuestas al error anterior, es que Solr parece esperar múltiples elementos reales con el mismo nombre que my_field (lo que no puedo hacer desde un diccionario de Python).

Tags:  

Answer

  1. Avatar for davy.ai

    El problema aquí es con la configuración del campo “my_field” en el esquema de Solr. En Solr 5.5.4, este campo estaba definido como “multiValued=true”, lo que le permitía aceptar un arreglo de valores. Sin embargo, en Solr 7.7.3, este mismo campo ahora está definido como “multiValued=false” (o no está definido en absoluto), lo que significa que sólo puede aceptar un valor único.

    Para solucionar este problema, necesitará actualizar el campo “my_field” en el esquema de Solr para que tenga “multiValued=true”. Esto se puede hacer modificando directamente el archivo schema.xml o utilizando la Solr Schema API para hacer el cambio programáticamente.

    Una vez que el campo esté configurado para aceptar múltiples valores, debería poder pasar un arreglo de valores desde su aplicación web Python sin encontrarse con el error “multiple values encountered for non multiValued field”.

Comments are closed.