private void commitDeletes(String collectionName, List<String> deleteIds) throws SolrServerException, IOException { if (deleteIds.size() == 0) return; solrClient.request(newUpdateRequest().deleteById(deleteIds), collectionName); }
private void commitDocumentChanges(String collectionName, Collection<SolrInputDocument> documents) throws SolrServerException, IOException { if (documents.size() == 0) return; try { solrClient.request(newUpdateRequest().add(documents), collectionName); } catch (HttpSolrClient.RemoteSolrException rse) { logger.error("Unable to save documents to Solr as one of the shape objects stored were not compatible with Solr.", rse); logger.error("Details in failed document batch: "); for (SolrInputDocument d : documents) { Collection<String> fieldNames = d.getFieldNames(); for (String name : fieldNames) { logger.error(name + ":" + d.getFieldValue(name).toString()); } } throw rse; } }
private void deleteIndividualFieldsFromIndex(String collectionName, String keyIdField, String docId, HashSet<IndexEntry> fieldDeletions) throws SolrServerException, IOException { if (fieldDeletions.isEmpty()) return; Map<String, String> fieldDeletes = new HashMap<String, String>(1) {{ put("set", null); }}; SolrInputDocument doc = new SolrInputDocument(); doc.addField(keyIdField, docId); StringBuilder sb = new StringBuilder(); for (IndexEntry fieldToDelete : fieldDeletions) { doc.addField(fieldToDelete.field, fieldDeletes); sb.append(fieldToDelete).append(","); } if (logger.isTraceEnabled()) logger.trace("Deleting individual fields [{}] for document {}", sb.toString(), docId); UpdateRequest singleDocument = newUpdateRequest(); singleDocument.add(doc); solrClient.request(singleDocument, collectionName); }
public void updateState(List<TridentTuple> tuples) { try { SolrRequest solrRequest = solrMapper.toSolrRequest(tuples); solrClient.request(solrRequest, solrMapper.getCollection()); solrClient.commit(solrMapper.getCollection()); } catch (Exception e) { final String msg = String.format("%s", tuples); logger.warn(msg); throw new FailedException(msg, e); } } }
@Override protected void process(Tuple tuple) { try { SolrRequest request = solrMapper.toSolrRequest(tuple); solrClient.request(request, solrMapper.getCollection()); ack(tuple); } catch (Exception e) { fail(tuple, e); } }
@Override public void clearStorage() throws BackendException { try { if (mode!=Mode.CLOUD) throw new UnsupportedOperationException("Operation only supported for SolrCloud"); logger.debug("Clearing storage from Solr: {}", solrClient); ZkStateReader zkStateReader = ((CloudSolrClient) solrClient).getZkStateReader(); zkStateReader.updateClusterState(true); ClusterState clusterState = zkStateReader.getClusterState(); for (String collection : clusterState.getCollections()) { logger.debug("Clearing collection [{}] in Solr",collection); UpdateRequest deleteAll = newUpdateRequest(); deleteAll.deleteByQuery("*:*"); solrClient.request(deleteAll, collection); } } catch (SolrServerException e) { logger.error("Unable to clear storage from index due to server error on Solr.", e); throw new PermanentBackendException(e); } catch (IOException e) { logger.error("Unable to clear storage from index due to low-level I/O error.", e); throw new PermanentBackendException(e); } catch (Exception e) { logger.error("Unable to clear storage from index due to general error.", e); throw new PermanentBackendException(e); } }
solrConfiguration.getAdminServer().request(car); } catch (Exception e) { LOG.error(e);
/** * Execute a request against a Solr server * * @param request the request to execute * * @return a {@link NamedList} containing the response from the server * * @throws IOException If there is a low-level I/O error. * @throws SolrServerException if there is an error on the server */ public final NamedList<Object> request(final SolrRequest request) throws SolrServerException, IOException { return request(request, null); }
/** * Execute a request against a Solr server * * @param request the request to execute * * @return a {@link NamedList} containing the response from the server * * @throws IOException If there is a low-level I/O error. * @throws SolrServerException if there is an error on the server */ public final NamedList<Object> request(final SolrRequest request) throws SolrServerException, IOException { return request(request, null); }
@Override public NamedList<Object> request(final SolrRequest request, String collection) throws SolrServerException, IOException { numRequests++; return solrServer.request(request, collection); }
SolrClient client = new HttpSolrClient("http://localhost:8983/solr/jiva/"); String dataDir = System.getProperty("user.dir"); File xmlFile = new File(dataDir + "/Alovera-Juice.xml"); if (xmlFile.exists()) { InputStream is = new FileInputStream(xmlFile); String str = IOUtils.toString(is); DirectXmlRequest dxr = new DirectXmlRequest("/update", str); client.request(dxr); client.commit(); }
private void commitDeletes(String collectionName, List<String> deleteIds) throws SolrServerException, IOException { if (deleteIds.size() == 0) return; solrClient.request(newUpdateRequest().deleteById(deleteIds), collectionName); }
private void commitDeletes(String collectionName, List<String> deleteIds) throws SolrServerException, IOException { if (deleteIds.size() == 0) return; solrClient.request(newUpdateRequest().deleteById(deleteIds), collectionName); }
@Override public NamedList<Object> request(SolrRequest request, String collection) throws SolrServerException, IOException { try { SolrClient server = getServer(request); return server.request(request); } catch (Exception e) { throw new SolrServerException(e); } }
@Override public NamedList<Object> request(SolrRequest request, String collection) throws SolrServerException, IOException { try { SolrClient server = getServer(request); return server.request(request); } catch (Exception e) { throw new SolrServerException(e); } }
private void request(ContentStreamUpdateRequest updateRequest) { try { solrClient.request(updateRequest, MarkdownDocument.MARKDOWN_CORE); logger.info("Updated document in Solr: {}", updateRequest.getParams().get(FILE_ID_LITERAL)); } catch (SolrServerException | IOException ex) { throw new SolrItemWriterException("Could not index document", ex); } } }
public void updateState(List<TridentTuple> tuples) { try { SolrRequest solrRequest = solrMapper.toSolrRequest(tuples); solrClient.request(solrRequest, solrMapper.getCollection()); solrClient.commit(solrMapper.getCollection()); } catch (Exception e) { final String msg = String.format("%s", tuples); logger.warn(msg); throw new FailedException(msg, e); } } }
@Override protected void process(Tuple tuple) { try { SolrRequest request = solrMapper.toSolrRequest(tuple); solrClient.request(request, solrMapper.getCollection()); ack(tuple); } catch (Exception e) { fail(tuple, e); } }
/** * Process this request asynchronously, using a specified request id * @param asyncId the request id * @param client a Solr client * @return the request id */ public String processAsync(String asyncId, SolrClient client) throws IOException, SolrServerException { this.asyncId = asyncId; NamedList<Object> resp = client.request(this); if (resp.get("error") != null) { throw new SolrServerException((String)resp.get("error")); } return (String) resp.get("requestid"); }
private static Set<String> fetchLiveNodes(SolrClient client) throws Exception { ModifiableSolrParams params = new ModifiableSolrParams(); params.set("action", "CLUSTERSTATUS"); QueryRequest request = new QueryRequest(params); request.setPath("/admin/collections"); NamedList cluster = (SimpleOrderedMap) client.request(request).get("cluster"); Set<String> liveNodes = new HashSet((List<String>)(cluster.get("live_nodes"))); return liveNodes; }