Good afternoon Solr brains trust I'm seeking some community advice if somebody can spare a minute from their busy schedules.
I'm attempting to use the switch query parser to influence client search behaviour based on a client specified request parameter. Essentially I want the following to occur: -A user has the option to pass through an optional request parameter "allResults" to solr -If "allResults" is true then return all matching query records by appending a filter query for all records (fq=*:*) -If "allResults" is empty then apply a filter using the collapse query parser ({!collapse field=SUMMARY_FIELD}) Environment Solr 7.3.1 (1 solr node DEV, 4 solr nodes PTST) 4 shard collection My Implementation I'm using the switch query parser to choose client behaviour by appending a filter query to the user request very similar to what is documented in the solr reference guide here (https://lucene.apache.org/solr/guide/7_4/other-parsers.html#switch-query-parser) The request uses the params api (pertinent line below is the _appends_ filter queries) (useParams=firstParams,secondParams) "set":{ "firstParams":{ "op":"AND", "wt":"json", "start":0, "allResults":"false", "fl":"FIELD_1,FIELD_2,SUMMARY_FIELD", "_appends_":{ "fq":"{!switch default=\"{!collapse field=SUMMARY_FIELD}\" case.true=*:* v=${allResults}}", }, "_invariants_":{ "deftype":"edismax", "timeAllowed":20000, "rows":"30", "echoParams":"none", } } } "set":{ "secondParams":{ "df":"FIELD_1", "q":"{!edismax v=${searchString} df=FIELD_1 q.op=${op}}", "_invariants_":{ "qf":"FIELD_1,FIELD_2,SUMMARY_FIELD", } } }} Everything works nicely until I move from a single node solr instance (DEV) to a clustered solr instance (PTST) in which I receive a null pointer exception from Solr which I'm having trouble picking apart. I've co-located the solr documents using document routing which appear to be the only requirement for the collapse query parser's use. Does anyone know if the switch query parser has any limitations in a sharded solr cloud environment or can provide any possible troubleshooting advice? Any community recommendations would be greatly appreciated Solr stack trace 2018-09-12 12:16:12,918 4064160860 ERROR : [c:my_collection s:shard1 r:core_node3 x:my_collection_ptst_shard1_replica_n1] org.apache.solr.common.SolrException : org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException: Error from server at https://myserver:1234/solr/my_collection_ptst_shard2_replica_n2: java.lang.NullPointerException at org.apache.solr.client.solrj.impl.HttpSolrClient.executeMethod(HttpSolrClient.java:643) at org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:255) at org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:244) at org.apache.solr.client.solrj.SolrClient.request(SolrClient.java:1219) at org.apache.solr.handler.component.HttpShardHandler.lambda$submit$0(HttpShardHandler.java:172) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at com.codahale.metrics.InstrumentedExecutorService$InstrumentedRunnable.run(InstrumentedExecutorService.java:176) at org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.lambda$execute$0(ExecutorUtil.java:188) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748 Thanks for taking the time to assist, Dwane