sorry cut n paste error i'd get { "responseHeader":{ "zkConnected":true, "status":0, "QTime":0, "params":{ "q":"*:*", "fl":"content", "rows":"1"}}, "response":{"numFound":1,"start":0,"docs":[ { "content":"my-content-value"}] }}
but you get my point On 18 April 2018 at 11:13, Lee Carroll <lee.a.carr...@googlemail.com> wrote: > for http://localhost:8983/solr/images/select?fl=content&q=id:1&start=1 > > I'd get > > { > "responseHeader":{ > "zkConnected":true, > "status":0, > "QTime":1, > "params":{ > "q":"*:*", > "_":"1524046333220"}}, > "response":{"numFound":1,"start":0,"docs":[ > { > "id":"1", > "content":"my-content-value", > "*content-type*":"text/plain"}] > }} > > when i want > > my-content-value > > > > On 18 April 2018 at 10:55, Mikhail Khludnev <m...@apache.org> wrote: > >> Lee, from this description I don see why it can't be addressed by fl,rows >> params. What makes it different form the typical Solr usage? >> >> >> On Wed, Apr 18, 2018 at 12:31 PM, Lee Carroll < >> lee.a.carr...@googlemail.com> >> wrote: >> >> > Sure, we want to return a single field's value for the top matching >> > document for a given query. Bare content rather than a full search >> result >> > listing. >> > >> > To be concrete: >> > >> > For a schema of fields id [unique key], content[stored],content-type[ >> > stored] >> > For a request: >> > >> > 1. Request URL: >> > https://localhost/solr/content?q=id:1 >> > 2. Request Method: >> > GET >> > >> > We get a response >> > HTTP/1.1 200 OK Content-Length: 16261 Content-Type: [content-type value] >> > >> > and the body to be the raw value of content >> > >> > In short clients consume directly the most relevant "content" returned >> from >> > solr queries they construct. >> > >> > Naively I've implemented a subclass of RawResponseWriter which takes the >> > first docs values and adds them to the appended "content" stream. >> Should I >> > selectively add the content stream depending on if this is the final >> > aggregation of cloud results (and provide a base class writer to act if >> > not), if so how do I know its the final aggregation. Or is adding the >> > content stream within the response writer a bad idea. Should that be >> being >> > added to the response somewhere else? >> > >> > Failing all of the above is asking about response writer an X / Y >> problem. >> > Is their a better way to achieve the above. I'd looked at transforming >> > response xml but that seemed not to offer a complete bare slate. >> > >> > Cheers Lee C >> > >> > >> > On 17 April 2018 at 21:36, Mikhail Khludnev <m...@apache.org> wrote: >> > >> > > 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.SolrExc >> eption; >> > > > > > 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 >> > > >> > >> >> >> >> -- >> Sincerely yours >> Mikhail Khludnev >> > >