The version it's working on is 8.5!

On Wed, 12 Aug 2020 at 17:16, Norbert Kutasi <kutasi.norb...@gmail.com>
wrote:

> I see what you mean, however the request results in cartesian products ,
> because of subordinate.q=*:* :
>
> http://localhost:8981/solr/Collection1/query?q=*&fl=*,subordinate:[subquery]&subordinate.q=*:*&subordinate.fl=*&subordinate.collection=Collection2
>
> {
>   "responseHeader":{
>     "zkConnected":true,
>     "status":0,
>     "QTime":0,
>     "params":{
>       "q":"*",
>       "fl":"*,subordinate:[subquery]",
>       "subordinate.fl":"*",
>       "subordinate.collection":"Collection2",
>       "subordinate.q":"*:*"}},
>   "response":{"numFound":2,"start":0,"docs":[
>       {
>         "id":"1",
>         "first_name":["John"],
>         "_version_":1674811207656144896,
>         "subordinate":{"numFound":3,"start":0,"docs":[
>             {
>               "id":"3",
>               "reporting_to":[2],
>               "first_name":["Thomas"],
>               "_version_":1674811297814806528},
>             {
>               "id":"4",
>               "reporting_to":[1],
>               "first_name":["Charles"],
>               "_version_":1674811297816903680},
>             {
>               "id":"5",
>               "reporting_to":[3],
>               "first_name":["Susan"],
>               "_version_":1674811297816903681}]
>         }},
>       {
>         "id":"2",
>         "first_name":["Peter"],
>         "_version_":1674811207659290624,
>         "subordinate":{"numFound":3,"start":0,"docs":[
>             {
>               "id":"3",
>               "reporting_to":[2],
>               "first_name":["Thomas"],
>               "_version_":1674811297814806528},
>             {
>               "id":"4",
>               "reporting_to":[1],
>               "first_name":["Charles"],
>               "_version_":1674811297816903680},
>             {
>               "id":"5",
>               "reporting_to":[3],
>               "first_name":["Susan"],
>               "_version_":1674811297816903681}]
>         }}]
>   }}
>
>
> Once I add back the "join"criteria q={!fields f=reporting_to v=$row.id},
> the error comes back...
>
>
> http://localhost:8983/solr/Collection1/query?q=*&fl=*,subordinate:[subquery]&subordinate.fl=*&subordinate.collection=Collection2&subordinate.q={!fields
> f=reporting_to v=$row.id}
>
> {
>   "error":{
>     "metadata":[
>       "error-class","org.apache.solr.common.SolrException",
>       "root-error-class","org.apache.solr.common.SolrException"],
>     "msg":"while invoking subordinate:[subquery] on 
> doc=SolrDocument{id=stored,indexed,tokenized,omitNorms,indexOptions=DOCS<id:1>,
>  first_name=[stored,index",
>     "code":400}}
>
>
> While I was writing an extensive response, just came across what seems to
> be the solution:
>
>
> http://localhost:8983/solr/Collection1/query?q=*&fl=*,subordinate:[subquery]&subordinate.fl=*&subordinate.collection=Collection2&subordinate.q={!term
> f=reporting_to v=$row.id}
>
> {
>   "responseHeader":{
>     "zkConnected":true,
>     "status":0,
>     "QTime":1,
>     "params":{
>       "json":"{\r\n  params: {\r\n    q: \"*\",\r\n    fq: \"*\",\r\n
>  rows: 5,\r\n\tfl:\"*,subordinate:[subquery]\",\r\n
>  subordinate.fl:\"*\",\r\n    subordinate.q:\"{!term f=reporting_to v=$
> row.id}\",\r\n    subordinate.fq:\"*\",\r\n
>  subordinate.rows:\"5\",\r\n    subordinate.collection:\"Collection2\"\r\n
>  }\r\n}\r\n\r\n\r\n\r\n"}},
>   "response":{"numFound":2,"start":0,"docs":[
>       {
>         "id":"1",
>         "first_name":["John"],
>         "_version_":1674811207656144896,
>         "subordinate":{"numFound":1,"start":0,"docs":[
>             {
>               "id":"4",
>               "reporting_to":[1],
>               "first_name":["Charles"],
>               "_version_":1674811297816903680}]
>         }},
>       {
>         "id":"2",
>         "first_name":["Peter"],
>         "_version_":1674811207659290624,
>         "subordinate":{"numFound":1,"start":0,"docs":[
>             {
>               "id":"3",
>               "reporting_to":[2],
>               "first_name":["Thomas"],
>               "_version_":1674811297814806528}]
>         }}]
>   }}
>
> I don't remember when did I change it to !fields, the documentation had it
> with !terms... which seems to be not working ether 
> q=name:john&fl=name,id,depts:[subquery]&depts.q={!terms
> f=id *v=$row.dept_id*}&depts.rows=10
>
> Erick, thanks for the suggestion of adding:
> &subordinate.collection=Collection2
>
> The solution is
> http://localhost:8983/solr/Collection1/query?q=*&fl=*,subordinate:[subquery]&subordinate.fl=*&subordinate.collection=Collection2&subordinate.q={!term%20f=reporting_to%20v=$row.id}
> Regards,
> Norbert
>
>
> On Wed, 12 Aug 2020 at 14:41, Erick Erickson <erickerick...@gmail.com>
> wrote:
>
>> This works from a browser:
>>
>> http://localhost:8981/solr/Collection1/query?q=*&fl=*,subordinate:[subquery]&subordinate.q=*:*&subordinate.fl=*&subordinate.collection=Collection2
>>
>> One problem you’re having is that “fromIndex” is a _core_ not a
>> collection. See:
>>
>> https://lucene.apache.org/solr/guide/8_2/transforming-result-documents.html
>>
>> It’s vaguely possible you could make it work by specifying something like
>> fromIndex=Collection2_shard1_replica_n1
>> if it was colocated on the node you’re querying, but you don’t want to go
>> there…
>>
>> Best,
>> Erick
>>
>> > On Aug 12, 2020, at 7:17 AM, Norbert Kutasi <kutasi.norb...@gmail.com>
>> wrote:
>> >
>> > Hi Dominique,
>> >
>> > Sorry, I was in a hurry to create a simple enough yet similar case that
>> we
>> > face with internally.
>> >
>> > reporting_to indeed is the right field , but the same error still
>> persists,
>> > something is seemingly wrong when invoking the *subquery *with
>> *fromIndex*
>> >
>> > {
>> >  params: {
>> >    q: "*",
>> >    fq: "*",
>> >    rows: 5,
>> > fl:"*,subordinate:[subquery fromIndex=Collection2]",
>> >    subordinate.fl:"*",
>> >    subordinate.q:"{!field f=reporting_to v=$row.id}",
>> >    subordinate.fq:"*",
>> >    subordinate.rows:"5",
>> >  }
>> > }
>> >
>> > {
>> >  "error":{
>> >    "metadata":[
>> >      "error-class","org.apache.solr.common.SolrException",
>> >      "root-error-class","org.apache.solr.common.SolrException"],
>> >    "msg":"while invoking subordinate:[subqueryfromIndex=Collection2] on
>> >
>> doc=SolrDocument{id=stored,indexed,tokenized,omitNorms,indexOptions=DOCS<id:1>,
>> > first_name=[stored,index",
>> >    "code":400}}
>> >
>> > Any help much appreciated, hopefully it's an error with the syntax I've
>> > been using.
>> >
>> > Regards,
>> > Norbert
>> >
>> > On Wed, 12 Aug 2020 at 12:49, Dominique Bejean <
>> dominique.bej...@eolya.fr>
>> > wrote:
>> >
>> >> Hi Norbert,
>> >>
>> >> The field name in collection2 is  "reporting_to" not "reporting".
>> >>
>> >> Dominique
>> >>
>> >>
>> >>
>> >> Le mer. 12 août 2020 à 11:59, Norbert Kutasi <kutasi.norb...@gmail.com>
>> a
>> >> écrit :
>> >>
>> >>> Hello,
>> >>>
>> >>> We have been using [subquery] to come up with arbitrary complex
>> >> hierarchies
>> >>> in our document responses.
>> >>>
>> >>> It works well as long as the documents are in the same collection
>> however
>> >>> based on the reference guide I infer it can bring in documents from
>> >>> different collections except it throws an error.
>> >>>
>> >>>
>> >>
>> https://lucene.apache.org/solr/guide/8_2/transforming-result-documents.html#subquery
>> >>>
>> >>>
>> >>> We are on SOLR 8.2 and in this sandbox we have a 2 node SOLRCloud
>> >> cluster,
>> >>> where both collections have 1 shard and 2 NRT replicas to ensure nodes
>> >> have
>> >>> a core from each collection.
>> >>> Basic Authorization enabled.
>> >>>
>> >>> Simple steps to reproduce this issue in this 2 node environment:
>> >>> ./solr create -c Collection1 -s 1 -rf 2
>> >>> ./solr create -c Collection2 -s 1 -rf 2
>> >>>
>> >>> Note: these collections are schemaless, however we observed the ones
>> with
>> >>> schemas.
>> >>>
>> >>> Collection 1:
>> >>> <add>
>> >>>   <doc>
>> >>>      <field name = "id">1</field>
>> >>>      <field name = "first name">John</field>
>> >>>   </doc>
>> >>>   <doc>
>> >>>      <field name = "id">2</field>
>> >>>      <field name = "first name">Peter</field>
>> >>>   </doc>
>> >>> </add>
>> >>>
>> >>> Collection 2:
>> >>> <add>
>> >>>   <doc>
>> >>>      <field name = "id">3</field>
>> >>>      <field name = "first name">Thomas</field>
>> >>> <field name = "reporting_to">2</field>
>> >>>   </doc>
>> >>>   <doc>
>> >>>      <field name = "id">4</field>
>> >>>      <field name = "first name">Charles</field>
>> >>>      <field name = "reporting_to">1</field>
>> >>>   </doc>
>> >>>   <doc>
>> >>>      <field name = "id">5</field>
>> >>>      <field name = "first name">Susan</field>
>> >>> <field name = "reporting_to">3</field>
>> >>>   </doc>
>> >>> </add>
>> >>>
>> >>>
>> >>> http://localhost:8983/solr/Collection1/query
>> >>> {
>> >>>  params: {
>> >>>    q: "*",
>> >>>    fq: "*",
>> >>>    rows: 5,
>> >>> fl:"*,subordinate:[subquery fromIndex=Collection2]",
>> >>>    subordinate.fl:"*",
>> >>>    subordinate.q:"{!field f=reporting v=$row.id}",
>> >>>    subordinate.fq:"*",
>> >>>    subordinate.rows:"5"
>> >>>  }
>> >>> }
>> >>>
>> >>> {
>> >>>  "error":{
>> >>>    "metadata":[
>> >>>      "error-class","org.apache.solr.common.SolrException",
>> >>>      "root-error-class","org.apache.solr.common.SolrException"],
>> >>>    "msg":"while invoking subordinate:[subqueryfromIndex=Collection2]
>> on
>> >>>
>> >>>
>> >>
>> doc=SolrDocument{id=stored,indexed,tokenized,omitNorms,indexOptions=DOCS<id:1>,
>> >>> first_name=[stored,index",
>> >>>    "code":400}}
>> >>>
>> >>>
>> >>> Where do we make a mistake?
>> >>>
>> >>> Thank you in advance,
>> >>> Norbert
>> >>>
>> >>
>>
>>

Reply via email to