#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.