protected NamedList waitForResponse(Predicate<NamedList> predicate, SolrRequest request, int intervalInMillis, int numRetries, String messageOnFail) { int i = 0; for (; i < numRetries; i++) { try { NamedList<Object> response = cluster.getSolrClient().request(request); if (predicate.test(response)) return response; Thread.sleep(intervalInMillis); } catch (RuntimeException rte) { throw rte; } catch (Exception e) { throw new RuntimeException("error executing request", e); } } fail("Tried " + i + " times , could not succeed. " + messageOnFail); return null; }
private void persistCheckpoints() throws IOException{ if (cloudSolrClient == null) { return; } UpdateRequest request = new UpdateRequest(); request.setParam("collection", checkpointCollection); SolrInputDocument doc = new SolrInputDocument(); doc.addField(ID, id); for(Map.Entry<String, Long> entry : checkpoints.entrySet()) { doc.addField("checkpoint_ss", entry.getKey()+"~"+entry.getValue()); } request.add(doc); try { cloudSolrClient.request(request); } catch (Exception e) { throw new IOException(e); } }
@SuppressWarnings("rawtypes") protected static int sendDocsWithRetry(CloudSolrClient cloudClient, String collection, List<SolrInputDocument> batch, int minRf, int maxRetries, int waitBeforeRetry) throws Exception { UpdateRequest up = new UpdateRequest(); up.add(batch); NamedList resp = null; int numRetries = 0; while(true) { try { resp = cloudClient.request(up, collection); return cloudClient.getMinAchievedReplicationFactor(cloudClient.getDefaultCollection(), resp); } catch (Exception exc) { Throwable rootCause = SolrException.getRootCause(exc); if (++numRetries <= maxRetries) { log.warn("ERROR: " + rootCause + " ... Sleeping for " + waitBeforeRetry + " seconds before re-try ..."); Thread.sleep(waitBeforeRetry * 1000L); } else { log.error("No more retries available! Add batch failed due to: " + rootCause); throw exc; } } } }
public void open() throws IOException { if (cache != null) { cloudSolrClient = cache.getCloudSolrClient(zkHost); } else { final List<String> hosts = new ArrayList<>(); hosts.add(zkHost); cloudSolrClient = new Builder(hosts, Optional.empty()).build(); } String json = getJsonFacetString(field, metrics, start, end, gap); ModifiableSolrParams paramsLoc = new ModifiableSolrParams(params); paramsLoc.set("json.facet", json); paramsLoc.set("rows", "0"); QueryRequest request = new QueryRequest(paramsLoc); try { NamedList response = cloudSolrClient.request(request, collection); getTuples(response, field, metrics); } catch (Exception e) { throw new IOException(e); } }
public void open() throws IOException { if(cache != null) { cloudSolrClient = cache.getCloudSolrClient(zkHost); } else { final List<String> hosts = new ArrayList<>(); hosts.add(zkHost); cloudSolrClient = new Builder(hosts, Optional.empty()).build(); } FieldComparator[] adjustedSorts = adjustSorts(buckets, bucketSorts); this.resortNeeded = resortNeeded(adjustedSorts); String json = getJsonFacetString(buckets, metrics, adjustedSorts, method, refine, bucketSizeLimit); assert expectedJson(json); ModifiableSolrParams paramsLoc = new ModifiableSolrParams(params); paramsLoc.set("json.facet", json); paramsLoc.set("rows", "0"); QueryRequest request = new QueryRequest(paramsLoc); try { NamedList response = cloudSolrClient.request(request, collection); getTuples(response, buckets, metrics); if(resortNeeded) { Collections.sort(tuples, getStreamSort()); } index=this.offset; } catch (Exception e) { throw new IOException(e); } }
cloudSolrServer.request(req);
cloudSolrServer.request(req);
NamedList response = client.request(request, collection); NamedList<Number> stats = (NamedList<Number>)response.get("indexstats"); long numDocs = stats.get("numDocs").longValue();
CloudSolrClient cloudSolrClient = cache.getCloudSolrClient(zkHost); try { NamedList response = cloudSolrClient.request(request, collection); this.tuple = getTuple(response); } catch (Exception e) {
private boolean canCreateCollections(String host) throws Exception { UpdateRequest req = new UpdateRequest("/admin/collections"); req.setParam("action", "CREATE"); String solrCollection = "solr_" + System.nanoTime(); req.setParam("name", solrCollection); req.setParam("numShards", "2"); req.setParam("replicationFactor", "2"); req.setParam("collection.configName", "myconf"); CloudSolrClient cloudSolrServer = new CloudSolrClient(host); cloudSolrServer.setZkConnectTimeout(1000); NamedList<Object> request = cloudSolrServer.request(req); return request != null && request.get("success") != null; }