Utilisation de schema.xml au lieu du schéma géré avec Solr 5.1.X
Je suis en train d'utiliser schema.xml avec la dernière version de Solr (5.1.0). Il semble que par défaut Solr 5.1.0 utilise géré schéma, mais je voudrais l'utiliser schema.xml pour une collection spécifique.
J'ai donc créer une nouvelle collection (à l'aide de solr créez -c my_collection sur windows et copie schema.xml de
server\solr\configsets\basic_configs\conf\schema.xml
à
server\solr\my_collection\conf\schema.xml
Après que j'ai modifier les paramètres dans
server\solr\my_collection\conf\solrconfig.xml
à utiliser
<schemaFactory class="ClassicIndexSchemaFactory"/>
Après avoir fait cela, j'obtiens une exception lors du démarrage du serveur:
org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: fieldType 'booleans' not found in the schema
Je fais quelque chose de mal ici? Ne devrait pas ce genre de logique de travail?
Mise à JOUR:
Stractrace ressemble à ceci:
org.apache.solr.common.SolrException: fieldType 'booleans' not found in the schema
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:885)
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:652)
at org.apache.solr.core.CoreContainer.create(CoreContainer.java:518)
at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:283)
at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:277)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.solr.common.SolrException: fieldType 'booleans' not found in the schema
at org.apache.solr.update.processor.AddSchemaFieldsUpdateProcessorFactory$TypeMapping.populateValueClasses(AddSchemaFieldsUpdateProcessorFactory.java:244)
at org.apache.solr.update.processor.AddSchemaFieldsUpdateProcessorFactory.inform(AddSchemaFieldsUpdateProcessorFactory.java:170)
at org.apache.solr.core.SolrResourceLoader.inform(SolrResourceLoader.java:620)
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:868)
source d'informationauteur chris544
Vous devez vous connecter pour publier un commentaire.
Le problème, c'est que vous faites référence à un type de champ
booleans
qui n'est pas défini dans votreschema.xml
fichier. Lorsque vous créez une base d'un fichiermanaged-schema
est créé dansserver\solr\my_collection\conf\
. Renommer ce fichier àschema.xml
et redémarrez solr avecClassicIndexSchemaFactory
et il fonctionne parfaitement.Le problème que j'avais était ici n'a rien à voir avec l'utilisation de l'
booleans
type de champ. Le problème est que la mise à niveau récemmentsolrconfig.xml
fichier a un processeur pour des domaines inconnus activé par défaut, ce qui a besoin de labooleans
type de champ, et probablement quelques autres.Ces sont tous définis par défaut dans le nouvel exemple
schema.xml
mais très probablement pas dans votre ancienschema.xml
.La solution pour moi a été de mettre en commentaire la
<updateRequestProcessorChain name="add-unknown-fields-to-the-schema">
section danssolrconfig.xml
.Alternativement, vous pouvez probablement juste de remplacer
solrconfig.xml
.Type de champ {booléens} n'est pas défini dans
schema.xml
.Des mesures pour le corriger,
managed-schema
fichier àschema.xml
solrconfig.xml
pour remplacer le schemaFactory classe.ManagedIndexSchemaFactory
définition, si elle existe.ClassicIndexSchemaFactory
définition comme indiqué ci-dessous,<schemaFactory class="ClassicIndexSchemaFactory"/>
autoCreateFields
à false danssolrconfig.xml
ou vous obtiendrezThis IndexSchema is not mutable
erreur.${update.autoCreateFields:false}