Reputation: 889
I am trying to use schema.xml with the latest version of Solr (5.1.0). It seems that by default Solr 5.1.0 uses managed schema, but I would like to use schema.xml for a specific collection.
So I create a new collection (using solr create -c my_collection on windows and copy schema.xml from
server\solr\configsets\basic_configs\conf\schema.xml
to
server\solr\my_collection\conf\schema.xml
After that I change settings in
server\solr\my_collection\conf\solrconfig.xml
to use
<schemaFactory class="ClassicIndexSchemaFactory"/>
After doing this I get an exception when starting the server:
org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: fieldType 'booleans' not found in the schema
Am I doing something terribly wrong here? Should not this kind of logic work?
UPDATE: Stractrace looks like this:
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)
Upvotes: 20
Views: 17318
Reputation: 2456
Field type {booleans} is not defined in schema.xml
.
Steps to fix it,
managed-schema
file to schema.xml
solrconfig.xml
to replace the schemaFactory class.ManagedIndexSchemaFactory
definition if it exists.ClassicIndexSchemaFactory
definition as shown below,<schemaFactory class="ClassicIndexSchemaFactory"/>
autoCreateFields
to false in solrconfig.xml
or you will get This IndexSchema is not mutable
error.
${update.autoCreateFields:false}
Upvotes: 2
Reputation: 756
The problem that I had here was had nothing to do with actually using the booleans
field type. The problem was that the newly upgraded solrconfig.xml
file has a processor for unknown fields enabled by default, which needs the booleans
field type, and probably some others.
These are all defined by default in the new example schema.xml
, but quite possibly not in your old schema.xml
.
The solution for me was to comment out the <updateRequestProcessorChain name="add-unknown-fields-to-the-schema">
section in solrconfig.xml
.
Alternatively, you can probably just replace solrconfig.xml
.
Upvotes: 12
Reputation: 1361
The problem is that you are referencing a field type booleans
that is not defined in your schema.xml
file. When you create a core a file managed-schema
is created in server\solr\my_collection\conf\
. Rename this file to schema.xml
and restart solr with ClassicIndexSchemaFactory
and it will work fine.
Upvotes: 25