Не в оболочке. Я хочу вызвать функцию оптимизации с помощью кода Java и получить уведомление, когда процесс оптимизации завершится.
Просто отправьте запрос на /solr/update?optimize=true из любого места / всего, что имеет доступ к серверу Solr, например:
/solr/update?optimize=true
curl 'http://localhost:8983/solr/update?optimize=true'
Можете ли вы быть более точным в отношении ваших требований? Вот как я оптимизирую solr, используя solrj EmbeddedSolrServer,
SolrServer server = CacheServer.getCacheInstance().getServer(); try { server.optimize(); } catch (SolrServerException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
Подробнее о optimize
Используя solrj , вы вызываете метод optimize класса CommonsHttpSolrServer .
См. этот вопрос о том, как узнать, когда выполняется оптимизация.