Модификация solrconfig.xml из SolrJ?
Я хочу изменить файл solrconfig.xml из моего кода Java. Если есть какой-либо источник, который приводит примеры реализации абстрактного SolrRequest в SolrJ для модификации solrconfig.xml, не могли бы вы указать мне на них.
Спасибо
1 ответ
Вы не можете изменить solrconfig.xml
непосредственно из API, но вы можете использовать Config API для изменения конфигурации без необходимости редактирования solrconfig.xml
,
Config API создает "оверлей", который используется поверх настроек, определенных в solrconfig, и позволяет вам манипулировать большинством аспектов, содержащихся в файле конфигурации.
Вы можете увидеть, как вручную собрать JSON и установить его с помощью SolrJ. Я не уверен, было ли что-то добавлено в SolrJ, чтобы абстрагироваться от этого, но открытые заявки на трекере показывают, что этого еще не произошло. Это также зависит от того, какую версию SolrJ вы используете.
Как сказал @MatsLindh, вы можете использовать Config API для обновления конфигураций solr. Вам также не нужно перезагружать коллекцию.
Вы можете найти свойства команды для API конфигурации здесь
Ниже приведен код для более новой версии Solr (>7.0), которая обновляет свойство updateHandler.autoSoftCommit.maxTime
:
//setting softCommit maxTime to 15000
final String command = "{\"set-property\":{\"updateHandler.autoSoftCommit.maxTime\":15000}}";
//path and method of request
final GenericSolrRequest rq = new GenericSolrRequest(SolrRequest.METHOD.POST, "/config", null);
// request string and request type
final ContentWriter content = new StringPayloadContentWriter(command, "application/json");
rq.setContentWriter(content);
//create your solrClient using zookeeper connection string
rq.process(solrClient, "<your collection name>");
Вы можете найти эквивалентную команду curl здесь