solr solrj

Solr Error Este Indexschema no es mutable



solrj (4)

Quiero usar schema.xml en lugar del esquema administrado, así que cambié lo siguiente en solrconfig.xml al siguiente

<schemaFactory class="ManagedIndexSchemaFactory"> <bool name="mutable">true</bool> <str name="managedSchemaResourceName">managed-schema</str> </schemaFactory>

a

<schemaFactory class="ClassicIndexSchemaFactory"/>

Pero me sale El índice no es un error mutable cuando intento indexar un archivo plano con el comando post.


Actualice autoCreateFields a falso en solrconfig.xml.

${update.autoCreateFields:false}


Al menos en Solr 7.2, probablemente debería simplemente cambiar update.autoCreateFields a falso en la definición updateRequestProcessorChain en solrconfig.xml como indica el comentario.

<!-- The update.autoCreateFields property can be turned to false to disable schemaless mode --> <updateRequestProcessorChain name="add-unknown-fields-to-the-schema" default="${update.autoCreateFields:false}" processor="uuid,remove-blank,field-name-mutating,parse-boolean,parse-long,parse-double,parse-date,add-schema-fields"> <processor class="solr.LogUpdateProcessorFactory"/> <processor class="solr.DistributedUpdateProcessorFactory"/> <processor class="solr.RunUpdateProcessorFactory"/> </updateRequestProcessorChain>

Eso funcionó y ahora solo recibo mensajes de error bonitos como

Error del servidor en http://localhost:8983/solr : ERROR: [doc = urn: nbn: cz: tst01-000001] campo desconocido ''título''

mientras estoy ajustando mi esquema estático, no administrado en schema.xml .


Elimine la sección AddSchemaFieldsUpdateProcessorFactory de la configuración updateRequestProcessorChain en su solrconfig.xml

La opción schemaFactory en solrconfig.xml. Esto controla si el esquema debe definirse como un "esquema de índice administrado": la modificación del esquema solo es posible a través de la API del esquema. De forma predeterminada, si no se especifica schemaFactory, entonces el comportamiento predeterminado es utilizar "ClassicIndexSchemaFactory"

El ClassicIndexSchemaFactory requiere el uso de un archivo schema.xml, que puede editarse manualmente y solo se carga cuando la colección está cargada. Esta configuración no permite los métodos de la API del esquema que modifican el esquema.

Cuando se especifica ManagedIndexSchemaFactory en su lugar, Solr cargará el esquema del recurso nombrado en managedSchemaResourceName , en lugar de hacerlo desde schema.xml.

AddSchemaFieldsUpdateProcessorFactory: este procesador agregará dinámicamente campos al esquema si un documento de entrada contiene uno o más campos que no coinciden con ningún campo o campo dinámico en el esquema.

Lea más sobre el mismo aquí https://lucene.apache.org/solr/4_6_0/solr-core/org/apache/solr/update/processor/AddSchemaFieldsUpdateProcessorFactory.html

En resumen, la fábrica de procesos anterior se utiliza para el esquema administrado. Cuando uno no quiere usar ManagedIndexSchemaFactory, debe eliminarse de updateRequestProcessorChain.

Para más detalles, puede consultar el código de solr o leer el código fuente de AddSchemaFieldsUpdateProcessorFactory.java Depurar el método processAdd(AddUpdateCommand cm) , le ayudará más sobre el mismo.


Me doy cuenta de que esta publicación es antigua, pero tuve el mismo comportamiento hoy al importar un archivo json. El problema era que el .json no estaba correctamente formado. Faltaban los [] (corchetes) en la parte superior e inferior del archivo y las '','' (comas) entre los objetos. Validé el archivo usando http://jslint.com/ . El error se resolvió una vez que hice estos cambios.

NOTA: Estos fueron los problemas que impidieron que mi archivo se formara correctamente. Le sugiero que ejecute sus datos a través de algún tipo de validador para descartar cualquier problema que su archivo pueda tener.

Espero que esto ayude.