private static boolean evaluate(UpdateResponse response) { LOGGER.debug("Response returned: Status code {}, Elapsed time {}, QTime {}", response.getStatus(), response.getElapsedTime(), response.getQTime()); //any other status code means 'there was an error' return response.getStatus() == 0; }
private static boolean evaluate(UpdateResponse response) { LOGGER.debug("Response returned: Status code {}, Elapsed time {}, QTime {}", response.getStatus(), response.getElapsedTime(), response.getQTime()); //any other status code means 'there was an error' return response.getStatus() == 0; }
private IndexResult indexMultipleDocuments(List<Document> docs, int withinMs) { final List<SolrInputDocument> solrDocs = docs.parallelStream() .map(doc -> createInputDocument(doc)) .collect(Collectors.toList()); try { if (solrClientLogger.isTraceEnabled()) { solrClientLogger.debug(">>> add({})", solrDocs); } else { solrClientLogger.debug(">>> add({})", solrDocs); } for(Document doc : docs){ removeNonParentDocument(doc, withinMs); } final UpdateResponse response = withinMs < 0 ? this.solrClient.add(solrDocs) : this.solrClient.add(solrDocs, withinMs); return new IndexResult(Long.valueOf(response.getQTime())).setElapsedTime(response.getElapsedTime()); } catch (SolrServerException | IOException e) { log.error("Cannot index documents {}", solrDocs, e); throw new SearchServerException("Cannot index documents", e); } }
protected UpdateResponse runUpdate(List<SolrInputDocument> batchToWrite) { try { UpdateResponse result = solr.add(batchToWrite); SolrRecordWriter.incrementCounter(taskId, SolrCounters.class.getName(), SolrCounters.BATCHES_WRITTEN.toString(), 1); SolrRecordWriter.incrementCounter(taskId, SolrCounters.class.getName(), SolrCounters.DOCUMENTS_WRITTEN.toString(), batchToWrite.size()); if (LOG.isDebugEnabled()) { SolrRecordWriter.incrementCounter(taskId, SolrCounters.class.getName(), SolrCounters.BATCH_WRITE_TIME.toString(), result.getElapsedTime()); } return result; } catch (Throwable e) { if (e instanceof Exception) { setBatchWriteException((Exception) e); } else { setBatchWriteException(new Exception(e)); } SolrRecordWriter.incrementCounter(taskId, getClass().getName() + ".errors", e.getClass().getName(), 1); LOG.error("Unable to process batch", e); return null; } }
protected UpdateResponse runUpdate(List<SolrInputDocument> batchToWrite) { try { UpdateResponse result = solr.add(batchToWrite); SolrRecordWriter.incrementCounter(taskId, SolrCounters.class.getName(), SolrCounters.BATCHES_WRITTEN.toString(), 1); SolrRecordWriter.incrementCounter(taskId, SolrCounters.class.getName(), SolrCounters.DOCUMENTS_WRITTEN.toString(), batchToWrite.size()); if (LOG.isDebugEnabled()) { SolrRecordWriter.incrementCounter(taskId, SolrCounters.class.getName(), SolrCounters.BATCH_WRITE_TIME.toString(), result.getElapsedTime()); } return result; } catch (Throwable e) { if (e instanceof Exception) { setBatchWriteException((Exception) e); } else { setBatchWriteException(new Exception(e)); } SolrRecordWriter.incrementCounter(taskId, getClass().getName() + ".errors", e.getClass().getName(), 1); LOG.error("Unable to process batch", e); return null; } }
protected UpdateResponse runUpdate(List<SolrInputDocument> batchToWrite) { try { UpdateResponse result = solr.add(batchToWrite); SolrRecordWriter.incrementCounter(taskId, "SolrRecordWriter", "BatchesWritten", 1); SolrRecordWriter.incrementCounter(taskId, "SolrRecordWriter", "DocumentsWritten", batchToWrite.size()); SolrRecordWriter.incrementCounter(taskId, "SolrRecordWriter", "BatchesWriteTime", result.getElapsedTime()); return result; } catch(Throwable e) { SolrRecordWriter.incrementCounter(taskId, "SolrRecordWriter", e.getClass().getName(), 1); if(e instanceof Exception) { setBatchWriteException((Exception) e); } else { setBatchWriteException(new Exception(e)); } return null; } }
protected UpdateResponse runUpdate(List<SolrInputDocument> batchToWrite) { try { UpdateResponse result = solr.add(batchToWrite); SolrRecordWriter.incrementCounter(taskId, "SolrRecordWriter", "BatchesWritten", 1); SolrRecordWriter.incrementCounter(taskId, "SolrRecordWriter", "DocumentsWritten", batchToWrite.size()); SolrRecordWriter.incrementCounter(taskId, "SolrRecordWriter", "BatchesWriteTime", result.getElapsedTime()); return result; } catch(Throwable e) { SolrRecordWriter.incrementCounter(taskId, "SolrRecordWriter", e.getClass().getName(), 1); if(e instanceof Exception) { setBatchWriteException((Exception) e); } else { setBatchWriteException(new Exception(e)); } return null; } }
@Override public DeleteResult execute(Delete delete, DocumentFactory factory) { String query = SolrUtils.Query.buildFilterString(delete.getQuery(), factory, delete.getUpdateContext(),true); try { solrClientLogger.debug(">>> delete query({})", query); //Finding the ID of the documents to delete final SolrQuery solrQuery = new SolrQuery(); solrQuery.setParam(CommonParams.Q, "*:*"); solrQuery.setParam(CommonParams.FQ,query.trim().replaceAll("^\\+","").split("\\+")); final QueryResponse response = solrClient.query(solrQuery, REQUEST_METHOD); long qTime = 0; long elapsedTime = 0; if(Objects.nonNull(response) && CollectionUtils.isNotEmpty(response.getResults())){ final List<String> idList = response.getResults().stream().map(doc -> (String) doc.get(ID)).collect(Collectors.toList()); final UpdateResponse deleteResponse = solrClient.deleteById(idList); qTime = deleteResponse.getQTime(); elapsedTime = deleteResponse.getElapsedTime(); //Deleting nested documents final UpdateResponse deleteNestedResponse = solrClient.deleteByQuery("_root_:(" + StringUtils.join(idList, " OR ") + ")"); qTime += deleteNestedResponse.getQTime(); elapsedTime += deleteNestedResponse.getElapsedTime(); } return new DeleteResult(qTime).setElapsedTime(elapsedTime); } catch (SolrServerException | IOException e) { log.error("Cannot delete with query {}", query, e); throw new SearchServerException("Cannot delete with query", e); } }
private IndexResult indexSingleDocument(Document doc, int withinMs) { final SolrInputDocument document = createInputDocument(doc); try { if (solrClientLogger.isTraceEnabled()) { solrClientLogger.debug(">>> add({}): {}", doc.getId(), ClientUtils.toXML(document)); } else { solrClientLogger.debug(">>> add({})", doc.getId()); } removeNonParentDocument(doc, withinMs); final UpdateResponse response = withinMs < 0 ? this.solrClient.add(document) : this.solrClient.add(document, withinMs); return new IndexResult(Long.valueOf(response.getQTime())).setElapsedTime(response.getElapsedTime()); } catch (SolrServerException | IOException e) { log.error("Cannot index document {}", document.getField(ID) , e); throw new SearchServerException("Cannot index document", e); } }
@Override public DeleteResult deleteWithin(Document doc, int withinMs) { try { long qTime = 0; long elapsedTime = 0; solrClientLogger.debug(">>> delete({})", doc.getId()); final UpdateResponse deleteResponse = withinMs < 0 ? solrClient.deleteById(doc.getId()) : solrClient.deleteById(doc.getId(), withinMs); qTime = deleteResponse.getQTime(); elapsedTime = deleteResponse.getElapsedTime(); //Deleting nested documents final UpdateResponse deleteNestedResponse = withinMs < 0 ? solrClient.deleteByQuery("_root_:" + doc.getId()) : solrClient.deleteByQuery("_root_:" + doc.getId(), withinMs); qTime += deleteNestedResponse.getQTime(); elapsedTime += deleteNestedResponse.getElapsedTime(); return new DeleteResult(qTime).setElapsedTime(elapsedTime); } catch (SolrServerException | IOException e) { log.error("Cannot delete document {}", doc.getId() , e); throw new SearchServerException("Cannot delete document", e); } }