Использование schema.xml вместо управляемой схемы с Solr 5.1.X

Я пытаюсь использовать schema.xml с последней версией Solr (5.1.0). Похоже, что по умолчанию Solr 5.1.0 использует управляемую схему, но я хотел бы использовать schema.xml для конкретной коллекции.

Итак, я создаю новую коллекцию (используя solr create -c my_collection на windows и скопируйте schema.xml из

server\solr\configsets\basic_configs\conf\schema.xml

к

server\solr\my_collection\conf\schema.xml

После этого я меняю настройки в

server\solr\my_collection\conf\solrconfig.xml 

использовать

<schemaFactory class="ClassicIndexSchemaFactory"/>

После этого я получаю исключение при запуске сервера:

org.apache.solr.common.SolrException:org.apache.solr.common.SolrException:    fieldType 'booleans' not found in the schema

Я делаю здесь что-то ужасно? Разве такая логика не работает?

UPDATE: Распространение выглядит следующим образом:

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)

Ответ 1

Проблема в том, что вы ссылаетесь на тип поля booleans, который не определен в вашем файле schema.xml. Когда вы создаете ядро, файл managed-schema создается в server\solr\my_collection\conf\. Переименуйте этот файл в schema.xml и перезапустите solr с помощью ClassicIndexSchemaFactory, и он будет работать нормально.

Ответ 2

Проблема, которую я здесь имела, не имела никакого отношения к фактическому использованию типа поля booleans. Проблема заключалась в том, что обновленный solrconfig.xml файл имеет процессор для неизвестных полей, включенных по умолчанию, которым нужен тип поля booleans и, возможно, некоторые другие.

Все они определены по умолчанию в новом примере schema.xml, но, возможно, не в вашем старом schema.xml.

Решение для меня заключалось в том, чтобы прокомментировать раздел <updateRequestProcessorChain name="add-unknown-fields-to-the-schema"> в solrconfig.xml.

В качестве альтернативы вы можете просто заменить solrconfig.xml.