2016-09-11 3 views
1

В настоящее время я работаю над обновлением нескольких ядер solr (3) с версии 4.10 до 5.3.3 (а затем до 6.2). Я сделал новую установку solr 5.3.3, а затем добавил свои ядра к новой установке.Обновление Solr от 4.10 до 5.3.3, сбой инициализации плагина solr.ICUcollationField

Мы также используем библиотеки icu4j, lucene-analyers-icu, solr-analysis-extras, поэтому я загрузил их для версии 5.3.3. Одно из ярусов отлично работает, так как у него нет определенного настраиваемого типа поля. Но, с двумя другими ядрами я получаю ошибки ниже, Первоначально я получил ошибку

org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: Could not load conf for core product: Can't load schema /var/solr/data/cores/product/conf/schema.xml: Plugin init failure for [schema.xml] fieldType "text_sortable": Error loading class 'solr.ICUCollationField' 

Итак, я удалил строку ниже от schema.xml и disappaeared выше ошибка,

<fieldType name="text_sortable" class="solr.ICUCollationField" locale="" strength="primary"/> 

Но теперь я получаю ошибку ниже,

org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: JVM Error creating core [suggest]: An SPI class of type org.apache.lucene.analysis.util.CharFilterFactory with classname org.apache.lucene.analysis.icu.ICUNormalizer2CharFilterFactory does not exist, please fix the file 'META-INF/services/org.apache.lucene.analysis.util.CharFilterFactory' in your classpath. 

Я не уверен, как действовать дальше, Любые предложения о том, как исправить ошибку выше будет полезно

+0

Оба класса по-прежнему доступны в Solr, поэтому убедитесь, что вы фактически загружаете библиотеку ICU4J. Журнал может показывать вам библиотеки по мере их загрузки? – MatsLindh

+0

@MatsLindh, библиотеки загружаются во время запуска, журнал запуска следующим образом, 1712 INFO (coreLoadExecutor-6-thread-3) [] oascSolrConfig Добавление указанных lib dirs в ClassLoader 1713 INFO (coreLoadExecutor-6-thread-3) [] oascSolrResourceLoader Добавление файла: /opt/shared_libs/lucene-analyzers-icu-5.5.3-sources.jar 'в classloader 1713 INFO (coreLoadExecutor-6-thread-3) [] oascSolrResourceLoader Добавление файла: /opt/shared_libs/icu4j-54.1.1-sources.jar 'to classloader – tux

+0

Но вы хотите загрузить 'sources' .jar, а не двоичную банку (' icu4j-54_1_1.jar')? – MatsLindh

ответ

1

Для тех, кто сталкивается с этим в будущем: поля ICU требуют загрузки библиотеки icu4j. Вы можете проверить журнал Solr, чтобы узнать, какие библиотеки фактически загружаются Solr при его запуске.

В соответствии с вашим журналом вы загружаете неправильный набор баннеров в свой загрузчик классов. Правильная банка для ICU - это без каких-либо дополнительных имен, таких как sources и т. Д. Текущая версия называется icu4j-54_1_1.jar.

Смежные вопросы