Есть ли какой-нибудь способ перезапустить Solr с помощью Java?

#java #solr #solrj

#java #solr #solrj

Вопрос:

Я использую SolrJ для индексации моих данных в моем ядре solr. Я использую автоматическую фиксацию Solr и хочу перезапустить свой solr после завершения индексации. Есть ли какой-нибудь способ сделать это с помощью Java-кодов??

Я сделал что-то вроде этого

     String urlReload="http://localhost:8983/solr";
    HttpSolrClient solr_reload=new HttpSolrClient.Builder(urlReload).build();
    CoreAdminRequest adminRequest=new CoreAdminRequest();
    adminRequest.setAction(CoreAdminAction.RELOAD);
    adminRequest.setCoreName("archiveCore");
    adminRequest.process(solr_reload);
  

Комментарии:

1. Можете ли вы посмотреть, работает ли у вас reload? lucene. apache.org/solr/guide/6_6 / …

2. Почему вы хотите перезапустить Solr после индексации?

3. @MatsLindh Когда я не перезапускаю после индексации, я не вижу никаких данных в моем ядре solr. Когда я перезапускаю или перезагружаю свое ядро, данные поступают.

4. Похоже, вы фиксируете данные, не открывая новый поисковик — или вообще не фиксируете (но тогда данные должны исчезнуть). Добавьте commitWithin=10000 , чтобы убедиться, что все отправленные данные отображаются в течение 10 секунд после отправки, или отправьте явный запрос на фиксацию и убедитесь, что вы открываете новый поисковик при фиксации.

5. Лучше перезагрузить ядра, чем просто перезапустить сам solr

Ответ №1:

Сделайте solr_reload.commit() наконец. Тогда вам не нужно перезапускать solr.