In distributed search response writer is used twice https://lucene.apache.org/solr/guide/7_1/distributed-requests.html once slave node that's where response writer yields "json" content and it upset aggregator node which is expect only javabin. I hardly can comment on rrw, it's probably used for responding separate files in distrib=false mode. You can start from describing why you need to create own response writer.
On Tue, Apr 17, 2018 at 7:02 PM, Lee Carroll <lee.a.carr...@googlemail.com> wrote: > Ok. My expectation was the response writer would not be used until the > final serialization of the result. If my response writer breaks the > response writer contract, exactly the way rawResponseWriter does and just > out puts a filed value how does that work? Does rawResponseWriter support > cloud mode? > > > > On 17 April 2018 at 15:55, Mikhail Khludnev <m...@apache.org> wrote: > > > That's what should happen. > > > > Expected mime type application/octet-stream but got application/json. > > > > Distributed search coordinator expect to merge slave responses in javabin > > format. But slave's wt indicated json. > > As far as I know only javabin might be used to distributed search > > underneath. Coordinator itself might yield json. > > > > On Tue, Apr 17, 2018 at 4:23 PM, Lee Carroll < > lee.a.carr...@googlemail.com > > > > > wrote: > > > > > Sure > > > > > > with 1 shard 1 replica this request works fine > > > > > > 1. Request URL: > > > http://localhost:8983/solr/images/image?q=id:1 > > > 2. Request Method: > > > GET > > > 3. Status Code: > > > 200 OK > > > > > > logs are clean > > > > > > with 2 shards 2 replicas the same request fails and in the logs > > > > > > > > > INFO - 2018-04-17 13:20:32.052; [c:images s:shard2 r:core_node7 > > > x:images_shard2_replica_n4] org.apache.solr.core.SolrCore; > > > [images_shard2_replica_n4] webapp=/solr path=/image > > > params={df=text&distrib=false&qt=/image&fl=id&fl=score& > > > shards.purpose=4&start=0&fsv=true&shard.url= > > > http://10.224.30.207:8983/solr/images_shard2_replica_n4/ > > > |http://10.224.30.207:7574/solr/images_shard2_replica_n6/ > > > &rows=10&version=2&q=id:1&NOW=1523971232039&isShard=true&wt=javabin} > > > hits=0 status=0 QTime=0 > > > ERROR - 2018-04-17 13:20:32.055; [c:images s:shard1 r:core_node3 > > > x:images_shard1_replica_n1] org.apache.solr.common.SolrException; > > > org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException: > > > Error > > > from server at http://10.224.30.207:8983/solr/images_shard2_replica_n4 > : > > > Expected mime type application/octet-stream but got application/json. > > > at > > > org.apache.solr.client.solrj.impl.HttpSolrClient. > > > executeMethod(HttpSolrClient.java:607) > > > 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.impl.LBHttpSolrClient. > > > doRequest(LBHttpSolrClient.java:483) > > > at > > > org.apache.solr.client.solrj.impl.LBHttpSolrClient.request( > > > LBHttpSolrClient.java:413) > > > at > > > org.apache.solr.handler.component.HttpShardHandlerFactory. > > > makeLoadBalancedRequest(HttpShardHandlerFactory.java:273) > > > at > > > org.apache.solr.handler.component.HttpShardHandler.lambda$submit$0( > > > HttpShardHandler.java:175) > > > 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:1142) > > > at > > > java.util.concurrent.ThreadPoolExecutor$Worker.run( > > > ThreadPoolExecutor.java:617) > > > at java.lang.Thread.run(Thread.java:745) > > > > > > INFO - 2018-04-17 13:20:32.056; [c:images s:shard1 r:core_node3 > > > x:images_shard1_replica_n1] org.apache.solr.core.SolrCore; > > > [images_shard1_replica_n1] webapp=/solr path=/image params={q=id:1} > > > status=200 QTime=17 > > > INFO - 2018-04-17 13:20:32.055; [c:images s:shard1 r:core_node3 > > > x:images_shard1_replica_n1] org.apache.solr.core.SolrCore; > > > [images_shard1_replica_n1] webapp=/solr path=/image > > > params={df=text&distrib=false&qt=/image&fl=id&fl=score& > > > shards.purpose=4&start=0&fsv=true&shard.url= > > > http://10.224.30.207:8983/solr/images_shard1_replica_n1/ > > > |http://10.224.30.207:7574/solr/images_shard1_replica_n2/ > > > &rows=10&version=2&q=id:1&NOW=1523971232039&isShard=true&wt=javabin} > > > hits=1 status=0 QTime=2 > > > > > > > > > I've implemented getcontenttype simply as > > > > > > @Override > > > public String getContentType(SolrQueryRequest request, > > > SolrQueryResponse response) { > > > > > > return "application/json;charset=utf-8"; > > > } > > > > > > > > > > > > > > > > > > On 16 April 2018 at 17:37, Mikhail Khludnev <m...@apache.org> wrote: > > > > > > > Lee, > > > > It's worth to send a stacktrace for such kind of inquiries. > > > > I guess it goes from QueryComponent.mergeIds() or so. Shard response > > > should > > > > contains <uniqueKey> from schema.xml field. > > > > I encounter something like this while troubleshooting > > > > https://lucene.apache.org/solr/guide/6_6/transforming- > > > > result-documents.html#TransformingResultDocuments- > > > > CoresandCollectionsinSolrCloud > > > > > > > > > > > > On Mon, Apr 16, 2018 at 6:56 PM, Lee Carroll < > > > lee.a.carr...@googlemail.com > > > > > > > > > wrote: > > > > > > > > > I've created a custom response writer which extends > > RawResponseWriter. > > > > The > > > > > basic operation is to output a single field value from the top > > matching > > > > doc > > > > > as the entire response. This works when shards = 1 but fails when > > > shards > > > > > are greater than 1. > > > > > > > > > > I throw an error if the field in question is missing from the top > > doc. > > > > This > > > > > happens when individual shards are being searched and only id and > > score > > > > are > > > > > returned. I'm sure I've committed a basic error. > > > > > > > > > > Lee C > > > > > > > > > > > > > > > > > > > > > -- > > > > Sincerely yours > > > > Mikhail Khludnev > > > > > > > > > > > > > > > -- > > Sincerely yours > > Mikhail Khludnev > > > -- Sincerely yours Mikhail Khludnev