public RunUpdateProcessor(SolrQueryRequest req, UpdateRequestProcessor next) { super( next ); this.req = req; this.updateHandler = req.getCore().getUpdateHandler(); }
private void doCommit() throws IOException { CommitUpdateCommand cmd = new CommitUpdateCommand(false); cmd.waitFlush = true; cmd.waitSearcher = true; solrCore.getUpdateHandler().commit(cmd); if (solrCore.getUpdateHandler() instanceof DirectUpdateHandler2) { LOG.info("Force open index writer to make sure older index files get deleted"); DirectUpdateHandler2 handler = (DirectUpdateHandler2) solrCore.getUpdateHandler(); handler.forceOpenWriter(); replicationHandler.refreshCommitpoint(); } else { LOG.warn("The update handler is not an instance or sub-class of DirectUpdateHandler2. " + "ReplicationHandler may not be able to cleanup un-used index files."); } }
protected void enableAutoSoftCommit(int time) { log.info("Turning on auto soft commit: " + time); for (List<CloudJettyRunner> jettyList : shardToJetty.values()) { for (CloudJettyRunner jetty : jettyList) { CoreContainer cores = jetty.jetty.getCoreContainer(); for (SolrCore core : cores.getCores()) { ((DirectUpdateHandler2) core.getUpdateHandler()) .getSoftCommitTracker().setTimeUpperBound(time); } } } }
if (core.getUpdateHandler().getUpdateLog() != null) { core.getUpdateHandler().getUpdateLog().recoverFromLog();
if (core.getUpdateHandler().getUpdateLog() != null) { core.getUpdateHandler().getUpdateLog().recoverFromLog();
protected void doCommit () { boolean isCloud = shards != null && shards.length > 1; SolrQueryRequest req = new SolrQueryRequestBase (core, new ModifiableSolrParams()) {}; CommitUpdateCommand cmd = new CommitUpdateCommand(req, false); cmd.softCommit = true; // cmd.expungeDeletes = false; // cmd.waitFlush = true; // cmd.waitSearcher = true; LoggerFactory.getLogger(getClass()).debug ("commit {}", shards); try { if (isCloud) { SolrQueryResponse rsp = new SolrQueryResponse(); // ((ModifiableSolrParams)req.getParams()).add(ShardParams.SHARDS, getShardURLs(false)); UpdateRequestProcessorChain updateChain = core.getUpdateProcessingChain("lux-update-chain"); updateChain.createProcessor(req, rsp).processCommit(cmd); } else { // commit locally core.getUpdateHandler().commit(cmd); } } catch (IOException e) { throw new LuxException(e); } }
@Override public void delete(String uri) { DeleteUpdateCommand cmd = new DeleteUpdateCommand(makeSolrQueryRequest()); /* cmd.fromCommitted = true; cmd.fromPending = true; */ cmd.id = uri; try { if (isCloud()) { deleteCloud(cmd); } else { core.getUpdateHandler().delete(cmd); } } catch (IOException e) { throw new LuxException (e); } }
@Override public void deleteAll() { DeleteUpdateCommand cmd = new DeleteUpdateCommand( makeSolrQueryRequest()); /* cmd.fromCommitted = true; cmd.fromPending = true; */ cmd.query = "*:*"; try { if (isCloud()) { deleteCloud(cmd); } else { core.getUpdateHandler().deleteByQuery(cmd); } } catch (IOException e) { throw new LuxException(e); } }
core.getUpdateHandler().registerOptimizeCallback(getEventListener(backupOnOptimize, replicateOnOptimize)); core.getUpdateHandler().registerCommitCallback(getEventListener(backupOnCommit, replicateOnCommit)); if (core.getUpdateHandler() instanceof DirectUpdateHandler2) { ((DirectUpdateHandler2) core.getUpdateHandler()).forceOpenWriter(); } else { LOG.warn("The update handler being used is not an instance or sub-class of DirectUpdateHandler2. " +
cmd.expungeDeletes = params.getBool( UpdateParams.EXPUNGE_DELETES, cmd.expungeDeletes); cmd.maxOptimizeSegments = params.getInt(UpdateParams.MAX_OPTIMIZE_SEGMENTS, cmd.maxOptimizeSegments); req.getCore().getUpdateHandler().commit( cmd );
private void writeLocal (SolrInputDocument solrDoc, NodeInfo node, String uri) { XmlIndexer indexer = null; try { indexer = xqueryComponent.getSolrIndexConfig().checkoutXmlIndexer(); try { indexer.index (node, uri); } catch (XMLStreamException e) { throw new LuxException(e); } UpdateDocCommand cmd = new UpdateDocCommand(core, indexer.createLuceneDocument(), uri); cmd.solrDoc = solrDoc; core.getUpdateHandler().addDoc(cmd); } catch (IOException e) { throw new LuxException (e); } finally { if (indexer != null) { xqueryComponent.getSolrIndexConfig().returnXmlIndexer(indexer); } } }
@Override public void write(NodeInfo node, String uri) { UpdateHandler updateHandler = core.getUpdateHandler();
UpdateLog ulog = core.getUpdateHandler().getUpdateLog(); SchemaField idField = core.getLatestSchema().getUniqueKeyField(); FieldType fieldType = idField.getType();