/** * Use this method to close the underlying SolrCore. * * @since solr 1.3 */ public void close() { core.close(); } }
SolrCore core = coreContainer.create("newcore", coreProps) coreContainer.swap("newcore", "livecore") // the old livecore is now newcore, so unload it and remove all the related dirs SolrCore oldCore = coreContainer.getCore("newCore") while (oldCore.getOpenCount > 1) { oldCore.close() } coreContainer.unload("newcore", true, true, true)
/** * Stops all cores. */ public void shutdown() { synchronized(cores) { try { for(SolrCore core : cores.values()) { core.close(); } cores.clear(); } finally { isShutDown = true; } } }
/** Gets a core that does not have its refcount incremented (i.e. there is no need to * close when done). This is not MT safe in conjunction with reloads! */ public SolrCore getCore() { // get the core & decrease its refcount: // the container holds the core for the harness lifetime SolrCore core = container.getCore(coreName); if (core != null) core.close(); return core; }
public void disable() { if (!enabled) { return; } coreContainer.remove(instanceName); solrCore.close(); }
@Override public File getSolrIndexDirectory(String name) { if(name == null || name.isEmpty()){ throw new IllegalArgumentException("The parsed index name MUST NOT be NULL nor empty!"); } SolrCore core = server.getCore(name); if(core != null){ File instanceDir = new File(core.getCoreDescriptor().getInstanceDir()); core.close(); return instanceDir; } else { return null; } }
@Override public IndexMetadata getIndexMetadata(String indexName) { IndexMetadata metadata; SolrCore core = server.getCore(indexName); if(core != null){ metadata = getMetadata(core,serverName); core.close(); } else { metadata = null; } return metadata; } @Override
public synchronized void close(TaskAttemptContext context, SolrCore core) throws InterruptedException, SolrServerException, IOException { context.setStatus("Waiting for batches to complete"); batchPool.shutdown(); while(!batchPool.isTerminated()) { LOG.info(String.format("Waiting for %d items and %d threads to finish executing", batchPool.getQueue().size(), batchPool.getActiveCount())); batchPool.awaitTermination(5, TimeUnit.SECONDS); } context.setStatus("Optimizing Solr"); solr.optimize(true, false, 1); context.setStatus("Closing Solr"); core.close(); }
public synchronized void close(TaskAttemptContext context, SolrCore core) throws InterruptedException, SolrServerException, IOException { context.setStatus("Waiting for batches to complete"); batchPool.shutdown(); while(!batchPool.isTerminated()) { LOG.info(String.format("Waiting for %d items and %d threads to finish executing", batchPool.getQueue().size(), batchPool.getActiveCount())); batchPool.awaitTermination(5, TimeUnit.SECONDS); } context.setStatus("Optimizing Solr"); solr.optimize(true, false, 1); context.setStatus("Closing Solr"); core.close(); }
@Override public File getSolrIndexDirectory(String name) { if(name == null || name.isEmpty()){ throw new IllegalArgumentException("The parsed index name MUST NOT be NULL nor empty!"); } SolrCore core = server.getCore(name); if(core != null){ File instanceDir = new File(core.getCoreDescriptor().getInstanceDir()); core.close(); return instanceDir; } else { return null; } }
@Override public void removeIndex(String name, boolean deleteFiles) { if(name == null || name.isEmpty()){ throw new IllegalArgumentException("The parsed index name MUST NOT be NULL nor empty!"); } SolrCore core = server.remove(name); core.close(); //decrease reference count if(deleteFiles){ String instanceDir = core.getCoreDescriptor().getInstanceDir(); while(!core.isClosed()){ //ensure the core is closed! core.close(); } try { FileUtils.deleteDirectory(new File(instanceDir)); } catch (IOException e) { log.error("Unable to delete instance directory '"+ instanceDir+"' of SolrCore '"+name+"'! Please delete this" + "directory manually."); } } }
@Override public IndexMetadata getIndexMetadata(String indexName) { IndexMetadata metadata; SolrCore core = server.getCore(indexName); if(core != null){ metadata = getMetadata(core,serverName); core.close(); } else { metadata = null; } return metadata; } @Override
@Override public void discardReplacementCore(Vocabulary vocabulary) { final String replacementCoreId = vocabulary.getIdentifier() + TEMP; if (this.cores.containsKey(replacementCoreId)) { CoreContainer container = this.coreContainer.getContainer(); SolrCore solrCore = container.getCore(replacementCoreId); if (solrCore != null) { solrCore.close(); } container.unload(replacementCoreId, true, true, true); this.cores.remove(replacementCoreId); this.caches.remove(replacementCoreId); } } }
public TestHarness(String coreName, CoreContainer.Initializer init) { try { container = init.initialize(); if (coreName == null) coreName = ""; // get the core & decrease its refcount: // the container holds the core for the harness lifetime core = container.getCore(coreName); if (core != null) core.close(); builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); updater = new XmlUpdateRequestHandler(); updater.init( null ); } catch (Exception e) { throw new RuntimeException(e); } }
@Override public IndexMetadata deactivateIndex(String indexName) { IndexMetadata metadata; SolrCore core = server.remove(indexName); if(core != null){ metadata = getMetadata(core,serverName); core.close(); metadata.setState(ManagedIndexState.INACTIVE); } else { metadata = null; } return metadata; } /**
@Override public IndexMetadata deactivateIndex(String indexName) { IndexMetadata metadata; SolrCore core = server.remove(indexName); if(core != null){ metadata = getMetadata(core,serverName); core.close(); metadata.setState(ManagedIndexState.INACTIVE); } else { metadata = null; } return metadata; } /**
private String getCollectionFromCoreName(String coreName) { SolrCore solrCore = null; try { if (coreName != null && !coreName.equals("")) { solrCore = coreContainer.getCore(coreName); if (solrCore != null) { return solrCore.getCoreDescriptor().getCloudDescriptor().getCollectionName(); } } } finally { if (solrCore != null) { solrCore.close(); } } return null; }
@Override public void replaceCore(Vocabulary vocabulary) throws InitializationException { final String absPath = this.environment.getPermanentDirectory().getAbsolutePath(); final File indexOrigin = new File(absPath, SOLR + vocabulary.getIdentifier() + "/data"); final File indexTemp = new File(absPath, SOLR + vocabulary.getIdentifier() + TEMP + "/data"); try { CoreContainer container = this.coreContainer.getContainer(); SolrCore solrCore = container.getCore(vocabulary.getIdentifier()); if (solrCore != null) { solrCore.close(); } container.unload(vocabulary.getIdentifier(), true, false, false); FileUtils.copyDirectory(indexTemp, indexOrigin); initialize(vocabulary); } catch (IOException ex) { ex.printStackTrace(); } }
@Override public void inflateSolrSchema() { server = solr.solrServer(); SolrCore solrCore = solr.solrCore(); try { indexedFields = solrCore.getSchema().getFields(); } finally { solrCore.close(); } }
/** * Handle "UNLOAD" Action * * @param req * @param rsp * * @return true if a modification has resulted that requires persistance * of the CoreContainer configuration. */ protected boolean handleUnloadAction(SolrQueryRequest req, SolrQueryResponse rsp) throws SolrException { SolrParams params = req.getParams(); String cname = params.get(CoreAdminParams.CORE); SolrCore core = coreContainer.remove(cname); if(core == null){ throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "No such core exists '"+cname+"'"); } core.close(); return coreContainer.isPersistent(); }