Запустить пользовательский фильтр Solr в облачном режиме - PullRequest
1 голос
/ 12 июня 2019

Я реализовал собственный фильтр Solr. Я хочу использовать его с Solr в облачном режиме. Я следовал официальной инструкции по добавлению плагинов в облачном режиме (которую можно найти здесь: https://lucene.apache.org/solr/guide/7_5/adding-custom-plugins-in-solrcloud-mode.html),, однако не удалось применить конфигурацию.

Фильтр и его фабричный класс реализованы, JAR создан. Размер JAR крошечный (пара килобайт). Solr запускается с включенными библиотеками времени выполнения (solr start -c -Denable.runtime.lib = true). JAR был загружен в коллекцию .system. Подтверждено запросом. Создан макет тестовой коллекции "mycollection". BLOB с пользовательским фильтром, зарегистрированным в тестовой коллекции. Пользовательский фильтр добавлен к определенному fieldType ("title_string") в "schema.xml" с параметром runtimeLib = "true". Конфигурация загружена.

Я попытался найти инструкции и обнаружил, что существуют проблемы с запуском любых модулей, определенных в schema.xml (например, фильтра). Я выполнил ту же процедуру с пользовательским плагином queryParser (они определены в solrconfig.xml), и он отлично работал в облачном режиме. Версия Solr - 7.7.2.

schema.xml fieldType, использующий пользовательский фильтр:

<fieldType name="title_string" class="solr.TextField" multiValued="false">
  <analyzer>
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="com.mycompany.filters.SimpleFilterFactory" runtimeLib="true" version="1"/>
  </analyzer>
</fieldType>

Ошибка, выдаваемая Solr (журналы) после применения конфигурации:

mycollection_shard1_replica_n1: org.apache.solr.common.SolrException: org.apache.solr.common.SolrException: не удалось загрузить conf для ядра mycollection_shard1_replica_n1: не удается загрузить схему schema.xml: ошибка инициализации плагина для [schema.x ] fieldType "title_string": ошибка инициализации плагина для [schema.xml] анализатора / фильтра: ошибка загрузки класса 'com.mycompany.filters.SimpleFilterFactory'

...