Hi there,
I'm working on a project which uses solr as search engine. I found I cannot get
the root cause of error from SolrJ.
Case 1
I try to create a field with wrong field type
Map<String, Object> fieldd = new LinkedHashMap<String, Object>();
fieldd.put("name", "eeeee");
fieldd.put("type", "srting");
fieldd.put("stored", true);
fieldd.put("indexed", true);
SchemaRequest.AddField addFieldRequest = new
SchemaRequest.AddField(fieldd);
addFieldRequest.process(client, "gettingstarted");
The exception I got is like:
1167 [main] ERROR org.apache.solr.client.solrj.impl.CloudSolrClient - Request
to collection [gettingstarted] failed due to (400)
org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteExecutionException:
Error from server at http://10.0.75.1:7574/solr/gettingstarted: error
processing commands, retry? 0
The root cause is wrapped very deep, like:
[cid:[email protected]]
Case 2
I try to get an non-existence field.
SchemaRequest.Field request = new SchemaRequest.Field("noexistfield");
FieldResponse response = request.process(client, "gettingstarted");
The error message is like
No live SolrServers available to handle this
request:[http://10.0.75.1:7574/solr/gettingstarted,
http://10.0.75.1:8983/solr/gettingstarted]
Many other errors have the same problems. I have to do a lot pre-checking in
code to get the actual reason, which is very inconvenient and affects
performance. Coud Solr provide a method to get the real cause easily, like
"getRootCause()" in SolrJ? Thanks!
Best Regards,
Ryan