Instead of using SolrQuery to make a query request, you can use the UpdateRequest class. Something like the following should do the same as your intended request:
CloudSolrClient solr = new CloudSolrClient("127.0.0.1:2181,127.0.0.2:2181, 127.0.0.3:218/solr1"); solr.setIdField("cust"); solr.setDefaultCollection("asset"); UpdateRequest update = new UpdateRequest(); update.setParam("_route_", "b!"); update.setParam("json.filter", "cust:b"); update.deleteByQuery("cust:b"); update.setAction(AbstractUpdateRequest.ACTION.OPTIMIZE, true, true); UpdateResponse response = update.process(solr); System.out.println(response.toString()); On Tue, Oct 20, 2015 at 6:41 PM, Troy Collinsworth <troycollinswo...@gmail.com> wrote: > Is it possible to execute the following via CloudSolrClient? It works via > curl. > > > curl > 'http://localhost:8983/solr/asset/update/json?_route_="b!"&json.filter="cust:b"' > -H 'Content-type:application/json' -d > '{params:{},"delete":{"query":"cust:b"},"commit": {},"optimize": {}}' > > > > I've tried the following, but the error indicates the URL path did not end > in /update/json. How do you set that via CloudSolrClient API? > > @Test > public void test() throws SolrServerException, IOException { > CloudSolrClient solr = new CloudSolrClient("127.0.0.1:2181,127.0.0.2:2181, > 127.0.0.3:218/solr1"); > solr.setIdField("cust"); > solr.setDefaultCollection("asset"); > SolrQuery q = new SolrQuery(); > q.setParam("_route_", "b!"); > q.setParam("json.filter", "cust:b"); > q.setQuery("{params:{},\"delete\":{\"query\":\"cust:b\"},\"commit\": > {},\"optimize\": {}}"); > QueryResponse r = solr.query(q); > System.out.println(r.toString()); > } > > > org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException: Error > from server at http://127.0.1.1:8984/solr/asset: > org.apache.solr.search.SyntaxError: Cannot parse > '{params:{},"delete":{"query":"cust:b"},"commit": {},"optimize": {}}': > Encountered " "}" "} "" at line 1, column 9. > Was expecting one of: > "TO" ... > <RANGE_QUOTED> ... > <RANGE_GOOP> ... > > at > org.apache.solr.client.solrj.impl.HttpSolrClient.executeMethod(HttpSolrClient.java:560) > at > org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:234) > at > org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:226) > at > org.apache.solr.client.solrj.impl.LBHttpSolrClient.doRequest(LBHttpSolrClient.java:376) > at > org.apache.solr.client.solrj.impl.LBHttpSolrClient.request(LBHttpSolrClient.java:328) > at > org.apache.solr.client.solrj.impl.CloudSolrClient.sendRequest(CloudSolrClient.java:1098) > at > org.apache.solr.client.solrj.impl.CloudSolrClient.requestWithRetryOnStaleState(CloudSolrClient.java:869) > . . . -- Regards, Shalin Shekhar Mangar.