Returning multiple fields in graph streaming expression response documents

classic Classic list List threaded Threaded
12 messages Options
Reply | Threaded
Open this post in threaded view
|

Returning multiple fields in graph streaming expression response documents

A Adel
Hi,

How can multiple fields be returned in graph traversal streaming expression
response documents? For example, the following query:

nodes(emails,
      walk="[hidden email]->from",
      gather="to")


returns these documents in the response:

{
  "result-set": {
    "docs": [
      {
        "node": "[hidden email]",
        "collection": "emails",
        "field": "to",
        "level": 1
      },
      {
        "node": "[hidden email]",
        "collection": "emails",
        "field": "to",
        "level": 1
      },
      {
        "node": "[hidden email]",
        "collection": "emails",
        "field": "to",
        "level": 1
      },
      {
        "EOF": true,
        "RESPONSE_TIME": 44
      }
    ]
  }
}

How can the query above be modified to return more document fields,
"subject" for example?

Best regards,

A.
Reply | Threaded
Open this post in threaded view
|

Re: Returning multiple fields in graph streaming expression response documents

markus kalkbrenner-2


You have to perform a „join“ to get more fields.

> Am 16.07.2019 um 13:52 schrieb Ahmed Adel <[hidden email]>:
>
> Hi,
>
> How can multiple fields be returned in graph traversal streaming expression
> response documents? For example, the following query:
>
> nodes(emails,
>      walk="[hidden email]->from",
>      gather="to")
>
>
> returns these documents in the response:
>
> {
>  "result-set": {
>    "docs": [
>      {
>        "node": "[hidden email]",
>        "collection": "emails",
>        "field": "to",
>        "level": 1
>      },
>      {
>        "node": "[hidden email]",
>        "collection": "emails",
>        "field": "to",
>        "level": 1
>      },
>      {
>        "node": "[hidden email]",
>        "collection": "emails",
>        "field": "to",
>        "level": 1
>      },
>      {
>        "EOF": true,
>        "RESPONSE_TIME": 44
>      }
>    ]
>  }
> }
>
> How can the query above be modified to return more document fields,
> "subject" for example?
>
> Best regards,
>
> A.
Reply | Threaded
Open this post in threaded view
|

Re: Returning multiple fields in graph streaming expression response documents

A Adel
Hi,

Thank you for your reply. Could you give more details on the „join“
operation, such as what the sides of the join and the joining condition
would be in this case?

Best regards,
A.

On Tue, Jul 16, 2019 at 2:02 PM markus kalkbrenner <
[hidden email]> wrote:

>
>
> You have to perform a „join“ to get more fields.
>
> > Am 16.07.2019 um 13:52 schrieb Ahmed Adel <[hidden email]>:
> >
> > Hi,
> >
> > How can multiple fields be returned in graph traversal streaming
> expression
> > response documents? For example, the following query:
> >
> > nodes(emails,
> >      walk="[hidden email]->from",
> >      gather="to")
> >
> >
> > returns these documents in the response:
> >
> > {
> >  "result-set": {
> >    "docs": [
> >      {
> >        "node": "[hidden email]",
> >        "collection": "emails",
> >        "field": "to",
> >        "level": 1
> >      },
> >      {
> >        "node": "[hidden email]",
> >        "collection": "emails",
> >        "field": "to",
> >        "level": 1
> >      },
> >      {
> >        "node": "[hidden email]",
> >        "collection": "emails",
> >        "field": "to",
> >        "level": 1
> >      },
> >      {
> >        "EOF": true,
> >        "RESPONSE_TIME": 44
> >      }
> >    ]
> >  }
> > }
> >
> > How can the query above be modified to return more document fields,
> > "subject" for example?
> >
> > Best regards,
> >
> > A.
>
Reply | Threaded
Open this post in threaded view
|

Re: Returning multiple fields in graph streaming expression response documents

Joel Bernstein
Hi Ahmed,

Take a look at the fetch
https://lucene.apache.org/solr/guide/8_0/stream-decorator-reference.html#fetch

It probably makes sense to allow more field to be returned from a nodes
expression as well.

Joel Bernstein
http://joelsolr.blogspot.com/


On Wed, Jul 17, 2019 at 3:12 AM Ahmed Adel <[hidden email]> wrote:

> Hi,
>
> Thank you for your reply. Could you give more details on the „join“
> operation, such as what the sides of the join and the joining condition
> would be in this case?
>
> Best regards,
> A.
>
> On Tue, Jul 16, 2019 at 2:02 PM markus kalkbrenner <
> [hidden email]> wrote:
>
> >
> >
> > You have to perform a „join“ to get more fields.
> >
> > > Am 16.07.2019 um 13:52 schrieb Ahmed Adel <[hidden email]>:
> > >
> > > Hi,
> > >
> > > How can multiple fields be returned in graph traversal streaming
> > expression
> > > response documents? For example, the following query:
> > >
> > > nodes(emails,
> > >      walk="[hidden email]->from",
> > >      gather="to")
> > >
> > >
> > > returns these documents in the response:
> > >
> > > {
> > >  "result-set": {
> > >    "docs": [
> > >      {
> > >        "node": "[hidden email]",
> > >        "collection": "emails",
> > >        "field": "to",
> > >        "level": 1
> > >      },
> > >      {
> > >        "node": "[hidden email]",
> > >        "collection": "emails",
> > >        "field": "to",
> > >        "level": 1
> > >      },
> > >      {
> > >        "node": "[hidden email]",
> > >        "collection": "emails",
> > >        "field": "to",
> > >        "level": 1
> > >      },
> > >      {
> > >        "EOF": true,
> > >        "RESPONSE_TIME": 44
> > >      }
> > >    ]
> > >  }
> > > }
> > >
> > > How can the query above be modified to return more document fields,
> > > "subject" for example?
> > >
> > > Best regards,
> > >
> > > A.
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: Returning multiple fields in graph streaming expression response documents

A Adel
Hi Joel,

Thank you for your thoughts. I tried the fetch function, however, the
response does not contain "fl" fields of the "fetch" expression. For the
above example, the modified query is as follows:

fetch(names, select(nodes(emails,
      walk="[hidden email]->from",
      gather="to"), node as to_s), fl="name", on="email=to_s")


where "names" is a collection that contains two fields representing pairs
of name and email: ("name", "email")

The response returned is:

{ "result-set": { "docs": [ { "to_s": "[hidden email]"
}, { "to_s": "[hidden email]"
},
... { "EOF": true, "RESPONSE_TIME": 33 } ] } }

The response should have an additional "name" field in each document
returned. Any additional thoughts are appreciated.

Best,
A.

On Thu, Jul 18, 2019 at 6:12 PM Joel Bernstein <[hidden email]> wrote:

> Hi Ahmed,
>
> Take a look at the fetch
>
> https://lucene.apache.org/solr/guide/8_0/stream-decorator-reference.html#fetch
>
> It probably makes sense to allow more field to be returned from a nodes
> expression as well.
>
> Joel Bernstein
> http://joelsolr.blogspot.com/
>
>
> On Wed, Jul 17, 2019 at 3:12 AM Ahmed Adel <[hidden email]> wrote:
>
> > Hi,
> >
> > Thank you for your reply. Could you give more details on the „join“
> > operation, such as what the sides of the join and the joining condition
> > would be in this case?
> >
> > Best regards,
> > A.
> >
> > On Tue, Jul 16, 2019 at 2:02 PM markus kalkbrenner <
> > [hidden email]> wrote:
> >
> > >
> > >
> > > You have to perform a „join“ to get more fields.
> > >
> > > > Am 16.07.2019 um 13:52 schrieb Ahmed Adel <[hidden email]>:
> > > >
> > > > Hi,
> > > >
> > > > How can multiple fields be returned in graph traversal streaming
> > > expression
> > > > response documents? For example, the following query:
> > > >
> > > > nodes(emails,
> > > >      walk="[hidden email]->from",
> > > >      gather="to")
> > > >
> > > >
> > > > returns these documents in the response:
> > > >
> > > > {
> > > >  "result-set": {
> > > >    "docs": [
> > > >      {
> > > >        "node": "[hidden email]",
> > > >        "collection": "emails",
> > > >        "field": "to",
> > > >        "level": 1
> > > >      },
> > > >      {
> > > >        "node": "[hidden email]",
> > > >        "collection": "emails",
> > > >        "field": "to",
> > > >        "level": 1
> > > >      },
> > > >      {
> > > >        "node": "[hidden email]",
> > > >        "collection": "emails",
> > > >        "field": "to",
> > > >        "level": 1
> > > >      },
> > > >      {
> > > >        "EOF": true,
> > > >        "RESPONSE_TIME": 44
> > > >      }
> > > >    ]
> > > >  }
> > > > }
> > > >
> > > > How can the query above be modified to return more document fields,
> > > > "subject" for example?
> > > >
> > > > Best regards,
> > > >
> > > > A.
> > >
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: Returning multiple fields in graph streaming expression response documents

Joel Bernstein
Try:

fetch(names,
     select(
         nodes(emails,
                     walk="[hidden email]->from",
                     gather="to"),
         node as to_s),
         fl="name",
    on="to_s=email")


According to the docs it looks like you have the fields reversed on the
fetch. If that doesn't work, I'll investigate further.




Joel Bernstein
http://joelsolr.blogspot.com/


On Fri, Jul 19, 2019 at 5:51 AM Ahmed Adel <[hidden email]> wrote:

> Hi Joel,
>
> Thank you for your thoughts. I tried the fetch function, however, the
> response does not contain "fl" fields of the "fetch" expression. For the
> above example, the modified query is as follows:
>
> fetch(names, select(nodes(emails,
>       walk="[hidden email]->from",
>       gather="to"), node as to_s), fl="name", on="email=to_s")
>
>
> where "names" is a collection that contains two fields representing pairs
> of name and email: ("name", "email")
>
> The response returned is:
>
> { "result-set": { "docs": [ { "to_s": "[hidden email]"
> }, { "to_s": "[hidden email]"
> },
> ... { "EOF": true, "RESPONSE_TIME": 33 } ] } }
>
> The response should have an additional "name" field in each document
> returned. Any additional thoughts are appreciated.
>
> Best,
> A.
>
> On Thu, Jul 18, 2019 at 6:12 PM Joel Bernstein <[hidden email]> wrote:
>
> > Hi Ahmed,
> >
> > Take a look at the fetch
> >
> >
> https://lucene.apache.org/solr/guide/8_0/stream-decorator-reference.html#fetch
> >
> > It probably makes sense to allow more field to be returned from a nodes
> > expression as well.
> >
> > Joel Bernstein
> > http://joelsolr.blogspot.com/
> >
> >
> > On Wed, Jul 17, 2019 at 3:12 AM Ahmed Adel <[hidden email]> wrote:
> >
> > > Hi,
> > >
> > > Thank you for your reply. Could you give more details on the „join“
> > > operation, such as what the sides of the join and the joining condition
> > > would be in this case?
> > >
> > > Best regards,
> > > A.
> > >
> > > On Tue, Jul 16, 2019 at 2:02 PM markus kalkbrenner <
> > > [hidden email]> wrote:
> > >
> > > >
> > > >
> > > > You have to perform a „join“ to get more fields.
> > > >
> > > > > Am 16.07.2019 um 13:52 schrieb Ahmed Adel <[hidden email]>:
> > > > >
> > > > > Hi,
> > > > >
> > > > > How can multiple fields be returned in graph traversal streaming
> > > > expression
> > > > > response documents? For example, the following query:
> > > > >
> > > > > nodes(emails,
> > > > >      walk="[hidden email]->from",
> > > > >      gather="to")
> > > > >
> > > > >
> > > > > returns these documents in the response:
> > > > >
> > > > > {
> > > > >  "result-set": {
> > > > >    "docs": [
> > > > >      {
> > > > >        "node": "[hidden email]",
> > > > >        "collection": "emails",
> > > > >        "field": "to",
> > > > >        "level": 1
> > > > >      },
> > > > >      {
> > > > >        "node": "[hidden email]",
> > > > >        "collection": "emails",
> > > > >        "field": "to",
> > > > >        "level": 1
> > > > >      },
> > > > >      {
> > > > >        "node": "[hidden email]",
> > > > >        "collection": "emails",
> > > > >        "field": "to",
> > > > >        "level": 1
> > > > >      },
> > > > >      {
> > > > >        "EOF": true,
> > > > >        "RESPONSE_TIME": 44
> > > > >      }
> > > > >    ]
> > > > >  }
> > > > > }
> > > > >
> > > > > How can the query above be modified to return more document fields,
> > > > > "subject" for example?
> > > > >
> > > > > Best regards,
> > > > >
> > > > > A.
> > > >
> > >
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: Returning multiple fields in graph streaming expression response documents

A Adel
Hi - Tried swapping the equality sides but (surprisingly?) got the same
exact response. Any additional thoughts are appreciated.

Best,
A.
http://aadel.io

On Fri, Jul 19, 2019 at 5:27 PM Joel Bernstein <[hidden email]> wrote:

> Try:
>
> fetch(names,
>      select(
>          nodes(emails,
>                      walk="[hidden email]->from",
>                      gather="to"),
>          node as to_s),
>          fl="name",
>     on="to_s=email")
>
>
> According to the docs it looks like you have the fields reversed on the
> fetch. If that doesn't work, I'll investigate further.
>
>
>
>
> Joel Bernstein
> http://joelsolr.blogspot.com/
>
>
> On Fri, Jul 19, 2019 at 5:51 AM Ahmed Adel <[hidden email]> wrote:
>
> > Hi Joel,
> >
> > Thank you for your thoughts. I tried the fetch function, however, the
> > response does not contain "fl" fields of the "fetch" expression. For the
> > above example, the modified query is as follows:
> >
> > fetch(names, select(nodes(emails,
> >       walk="[hidden email]->from",
> >       gather="to"), node as to_s), fl="name", on="email=to_s")
> >
> >
> > where "names" is a collection that contains two fields representing pairs
> > of name and email: ("name", "email")
> >
> > The response returned is:
> >
> > { "result-set": { "docs": [ { "to_s": "[hidden email]"
> > }, { "to_s": "[hidden email]"
> > },
> > ... { "EOF": true, "RESPONSE_TIME": 33 } ] } }
> >
> > The response should have an additional "name" field in each document
> > returned. Any additional thoughts are appreciated.
> >
> > Best,
> > A.
> >
> > On Thu, Jul 18, 2019 at 6:12 PM Joel Bernstein <[hidden email]>
> wrote:
> >
> > > Hi Ahmed,
> > >
> > > Take a look at the fetch
> > >
> > >
> >
> https://lucene.apache.org/solr/guide/8_0/stream-decorator-reference.html#fetch
> > >
> > > It probably makes sense to allow more field to be returned from a nodes
> > > expression as well.
> > >
> > > Joel Bernstein
> > > http://joelsolr.blogspot.com/
> > >
> > >
> > > On Wed, Jul 17, 2019 at 3:12 AM Ahmed Adel <[hidden email]> wrote:
> > >
> > > > Hi,
> > > >
> > > > Thank you for your reply. Could you give more details on the „join“
> > > > operation, such as what the sides of the join and the joining
> condition
> > > > would be in this case?
> > > >
> > > > Best regards,
> > > > A.
> > > >
> > > > On Tue, Jul 16, 2019 at 2:02 PM markus kalkbrenner <
> > > > [hidden email]> wrote:
> > > >
> > > > >
> > > > >
> > > > > You have to perform a „join“ to get more fields.
> > > > >
> > > > > > Am 16.07.2019 um 13:52 schrieb Ahmed Adel <[hidden email]>:
> > > > > >
> > > > > > Hi,
> > > > > >
> > > > > > How can multiple fields be returned in graph traversal streaming
> > > > > expression
> > > > > > response documents? For example, the following query:
> > > > > >
> > > > > > nodes(emails,
> > > > > >      walk="[hidden email]->from",
> > > > > >      gather="to")
> > > > > >
> > > > > >
> > > > > > returns these documents in the response:
> > > > > >
> > > > > > {
> > > > > >  "result-set": {
> > > > > >    "docs": [
> > > > > >      {
> > > > > >        "node": "[hidden email]",
> > > > > >        "collection": "emails",
> > > > > >        "field": "to",
> > > > > >        "level": 1
> > > > > >      },
> > > > > >      {
> > > > > >        "node": "[hidden email]",
> > > > > >        "collection": "emails",
> > > > > >        "field": "to",
> > > > > >        "level": 1
> > > > > >      },
> > > > > >      {
> > > > > >        "node": "[hidden email]",
> > > > > >        "collection": "emails",
> > > > > >        "field": "to",
> > > > > >        "level": 1
> > > > > >      },
> > > > > >      {
> > > > > >        "EOF": true,
> > > > > >        "RESPONSE_TIME": 44
> > > > > >      }
> > > > > >    ]
> > > > > >  }
> > > > > > }
> > > > > >
> > > > > > How can the query above be modified to return more document
> fields,
> > > > > > "subject" for example?
> > > > > >
> > > > > > Best regards,
> > > > > >
> > > > > > A.
> > > > >
> > > >
> > >
> >
>
--
Sent from my iPhone
Reply | Threaded
Open this post in threaded view
|

Re: Returning multiple fields in graph streaming expression response documents

Joel Bernstein
I suspect fetch is having problem due to this commit:

https://github.com/apache/lucene-solr/commit/cb9f151db4b5ad5c5f581b6b8cf2e5916ddb0f35#diff-98abfc8855d347035205c6f3afc2cde3

Later local params were turned off for anything but the lucene qparser.
Which means this query doesn't work if /select is using edismax etc...

This needs to be fixed.
Can you check to see if the qparser is for the /select handler on your
install?

Anyway fetch needs to be reverted back to it's previous implementation
before the above commit basically broke it.




Joel Bernstein
http://joelsolr.blogspot.com/


On Fri, Jul 19, 2019 at 2:20 PM Ahmed Adel <[hidden email]> wrote:

> Hi - Tried swapping the equality sides but (surprisingly?) got the same
> exact response. Any additional thoughts are appreciated.
>
> Best,
> A.
> http://aadel.io
>
> On Fri, Jul 19, 2019 at 5:27 PM Joel Bernstein <[hidden email]> wrote:
>
> > Try:
> >
> > fetch(names,
> >      select(
> >          nodes(emails,
> >                      walk="[hidden email]->from",
> >                      gather="to"),
> >          node as to_s),
> >          fl="name",
> >     on="to_s=email")
> >
> >
> > According to the docs it looks like you have the fields reversed on the
> > fetch. If that doesn't work, I'll investigate further.
> >
> >
> >
> >
> > Joel Bernstein
> > http://joelsolr.blogspot.com/
> >
> >
> > On Fri, Jul 19, 2019 at 5:51 AM Ahmed Adel <[hidden email]> wrote:
> >
> > > Hi Joel,
> > >
> > > Thank you for your thoughts. I tried the fetch function, however, the
> > > response does not contain "fl" fields of the "fetch" expression. For
> the
> > > above example, the modified query is as follows:
> > >
> > > fetch(names, select(nodes(emails,
> > >       walk="[hidden email]->from",
> > >       gather="to"), node as to_s), fl="name", on="email=to_s")
> > >
> > >
> > > where "names" is a collection that contains two fields representing
> pairs
> > > of name and email: ("name", "email")
> > >
> > > The response returned is:
> > >
> > > { "result-set": { "docs": [ { "to_s": "[hidden email]"
> > > }, { "to_s": "[hidden email]"
> > > },
> > > ... { "EOF": true, "RESPONSE_TIME": 33 } ] } }
> > >
> > > The response should have an additional "name" field in each document
> > > returned. Any additional thoughts are appreciated.
> > >
> > > Best,
> > > A.
> > >
> > > On Thu, Jul 18, 2019 at 6:12 PM Joel Bernstein <[hidden email]>
> > wrote:
> > >
> > > > Hi Ahmed,
> > > >
> > > > Take a look at the fetch
> > > >
> > > >
> > >
> >
> https://lucene.apache.org/solr/guide/8_0/stream-decorator-reference.html#fetch
> > > >
> > > > It probably makes sense to allow more field to be returned from a
> nodes
> > > > expression as well.
> > > >
> > > > Joel Bernstein
> > > > http://joelsolr.blogspot.com/
> > > >
> > > >
> > > > On Wed, Jul 17, 2019 at 3:12 AM Ahmed Adel <[hidden email]>
> wrote:
> > > >
> > > > > Hi,
> > > > >
> > > > > Thank you for your reply. Could you give more details on the „join“
> > > > > operation, such as what the sides of the join and the joining
> > condition
> > > > > would be in this case?
> > > > >
> > > > > Best regards,
> > > > > A.
> > > > >
> > > > > On Tue, Jul 16, 2019 at 2:02 PM markus kalkbrenner <
> > > > > [hidden email]> wrote:
> > > > >
> > > > > >
> > > > > >
> > > > > > You have to perform a „join“ to get more fields.
> > > > > >
> > > > > > > Am 16.07.2019 um 13:52 schrieb Ahmed Adel <[hidden email]>:
> > > > > > >
> > > > > > > Hi,
> > > > > > >
> > > > > > > How can multiple fields be returned in graph traversal
> streaming
> > > > > > expression
> > > > > > > response documents? For example, the following query:
> > > > > > >
> > > > > > > nodes(emails,
> > > > > > >      walk="[hidden email]->from",
> > > > > > >      gather="to")
> > > > > > >
> > > > > > >
> > > > > > > returns these documents in the response:
> > > > > > >
> > > > > > > {
> > > > > > >  "result-set": {
> > > > > > >    "docs": [
> > > > > > >      {
> > > > > > >        "node": "[hidden email]",
> > > > > > >        "collection": "emails",
> > > > > > >        "field": "to",
> > > > > > >        "level": 1
> > > > > > >      },
> > > > > > >      {
> > > > > > >        "node": "[hidden email]",
> > > > > > >        "collection": "emails",
> > > > > > >        "field": "to",
> > > > > > >        "level": 1
> > > > > > >      },
> > > > > > >      {
> > > > > > >        "node": "[hidden email]",
> > > > > > >        "collection": "emails",
> > > > > > >        "field": "to",
> > > > > > >        "level": 1
> > > > > > >      },
> > > > > > >      {
> > > > > > >        "EOF": true,
> > > > > > >        "RESPONSE_TIME": 44
> > > > > > >      }
> > > > > > >    ]
> > > > > > >  }
> > > > > > > }
> > > > > > >
> > > > > > > How can the query above be modified to return more document
> > fields,
> > > > > > > "subject" for example?
> > > > > > >
> > > > > > > Best regards,
> > > > > > >
> > > > > > > A.
> > > > > >
> > > > >
> > > >
> > >
> >
> --
> Sent from my iPhone
>
Reply | Threaded
Open this post in threaded view
|

Re: Returning multiple fields in graph streaming expression response documents

A Adel
To validate this, I indexed the datasets and ran the same query on Solr
6.5.0 environment (https://archive.apache.org/dist/lucene/solr/6.5.0/)
before cb9f15 commit gets into release but got the same response, no
additional fields, as Solr 8.1.1. I have used the default managed schema
settings in both Solr versions, which I guess means qparser is not used for
/select in this case, is it?

On Sat, Jul 20, 2019 at 2:02 AM Joel Bernstein <[hidden email]> wrote:

> I suspect fetch is having problem due to this commit:
>
>
> https://github.com/apache/lucene-solr/commit/cb9f151db4b5ad5c5f581b6b8cf2e5916ddb0f35#diff-98abfc8855d347035205c6f3afc2cde3
>
> Later local params were turned off for anything but the lucene qparser.
> Which means this query doesn't work if /select is using edismax etc...
>
> This needs to be fixed.
> Can you check to see if the qparser is for the /select handler on your
> install?
>
> Anyway fetch needs to be reverted back to it's previous implementation
> before the above commit basically broke it.
>
>
>
>
> Joel Bernstein
> http://joelsolr.blogspot.com/
>
>
> On Fri, Jul 19, 2019 at 2:20 PM Ahmed Adel <[hidden email]> wrote:
>
> > Hi - Tried swapping the equality sides but (surprisingly?) got the same
> > exact response. Any additional thoughts are appreciated.
> >
> > Best,
> > A.
> > http://aadel.io
> >
> > On Fri, Jul 19, 2019 at 5:27 PM Joel Bernstein <[hidden email]>
> wrote:
> >
> > > Try:
> > >
> > > fetch(names,
> > >      select(
> > >          nodes(emails,
> > >                      walk="[hidden email]->from",
> > >                      gather="to"),
> > >          node as to_s),
> > >          fl="name",
> > >     on="to_s=email")
> > >
> > >
> > > According to the docs it looks like you have the fields reversed on the
> > > fetch. If that doesn't work, I'll investigate further.
> > >
> > >
> > >
> > >
> > > Joel Bernstein
> > > http://joelsolr.blogspot.com/
> > >
> > >
> > > On Fri, Jul 19, 2019 at 5:51 AM Ahmed Adel <[hidden email]> wrote:
> > >
> > > > Hi Joel,
> > > >
> > > > Thank you for your thoughts. I tried the fetch function, however, the
> > > > response does not contain "fl" fields of the "fetch" expression. For
> > the
> > > > above example, the modified query is as follows:
> > > >
> > > > fetch(names, select(nodes(emails,
> > > >       walk="[hidden email]->from",
> > > >       gather="to"), node as to_s), fl="name", on="email=to_s")
> > > >
> > > >
> > > > where "names" is a collection that contains two fields representing
> > pairs
> > > > of name and email: ("name", "email")
> > > >
> > > > The response returned is:
> > > >
> > > > { "result-set": { "docs": [ { "to_s": "[hidden email]"
> > > > }, { "to_s": "[hidden email]"
> > > > },
> > > > ... { "EOF": true, "RESPONSE_TIME": 33 } ] } }
> > > >
> > > > The response should have an additional "name" field in each document
> > > > returned. Any additional thoughts are appreciated.
> > > >
> > > > Best,
> > > > A.
> > > >
> > > > On Thu, Jul 18, 2019 at 6:12 PM Joel Bernstein <[hidden email]>
> > > wrote:
> > > >
> > > > > Hi Ahmed,
> > > > >
> > > > > Take a look at the fetch
> > > > >
> > > > >
> > > >
> > >
> >
> https://lucene.apache.org/solr/guide/8_0/stream-decorator-reference.html#fetch
> > > > >
> > > > > It probably makes sense to allow more field to be returned from a
> > nodes
> > > > > expression as well.
> > > > >
> > > > > Joel Bernstein
> > > > > http://joelsolr.blogspot.com/
> > > > >
> > > > >
> > > > > On Wed, Jul 17, 2019 at 3:12 AM Ahmed Adel <[hidden email]>
> > wrote:
> > > > >
> > > > > > Hi,
> > > > > >
> > > > > > Thank you for your reply. Could you give more details on the
> „join“
> > > > > > operation, such as what the sides of the join and the joining
> > > condition
> > > > > > would be in this case?
> > > > > >
> > > > > > Best regards,
> > > > > > A.
> > > > > >
> > > > > > On Tue, Jul 16, 2019 at 2:02 PM markus kalkbrenner <
> > > > > > [hidden email]> wrote:
> > > > > >
> > > > > > >
> > > > > > >
> > > > > > > You have to perform a „join“ to get more fields.
> > > > > > >
> > > > > > > > Am 16.07.2019 um 13:52 schrieb Ahmed Adel <[hidden email]
> >:
> > > > > > > >
> > > > > > > > Hi,
> > > > > > > >
> > > > > > > > How can multiple fields be returned in graph traversal
> > streaming
> > > > > > > expression
> > > > > > > > response documents? For example, the following query:
> > > > > > > >
> > > > > > > > nodes(emails,
> > > > > > > >      walk="[hidden email]->from",
> > > > > > > >      gather="to")
> > > > > > > >
> > > > > > > >
> > > > > > > > returns these documents in the response:
> > > > > > > >
> > > > > > > > {
> > > > > > > >  "result-set": {
> > > > > > > >    "docs": [
> > > > > > > >      {
> > > > > > > >        "node": "[hidden email]",
> > > > > > > >        "collection": "emails",
> > > > > > > >        "field": "to",
> > > > > > > >        "level": 1
> > > > > > > >      },
> > > > > > > >      {
> > > > > > > >        "node": "[hidden email]",
> > > > > > > >        "collection": "emails",
> > > > > > > >        "field": "to",
> > > > > > > >        "level": 1
> > > > > > > >      },
> > > > > > > >      {
> > > > > > > >        "node": "[hidden email]",
> > > > > > > >        "collection": "emails",
> > > > > > > >        "field": "to",
> > > > > > > >        "level": 1
> > > > > > > >      },
> > > > > > > >      {
> > > > > > > >        "EOF": true,
> > > > > > > >        "RESPONSE_TIME": 44
> > > > > > > >      }
> > > > > > > >    ]
> > > > > > > >  }
> > > > > > > > }
> > > > > > > >
> > > > > > > > How can the query above be modified to return more document
> > > fields,
> > > > > > > > "subject" for example?
> > > > > > > >
> > > > > > > > Best regards,
> > > > > > > >
> > > > > > > > A.
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> > --
> > Sent from my iPhone
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: Returning multiple fields in graph streaming expression response documents

Joel Bernstein
Ok, then it sounds like a different issue. Let's look at the logs following
a request and see what the issue is. There will be a log record that shows
the query that is sent to Solr by the fetch expression. When we look at
that log we'll be able to see what the query is, and if results are
returned. It could be a bug in the code or it could be something related to
the data that's being fetched.


Joel Bernstein
http://joelsolr.blogspot.com/


On Sat, Jul 20, 2019 at 5:21 PM Ahmed Adel <[hidden email]> wrote:

> To validate this, I indexed the datasets and ran the same query on Solr
> 6.5.0 environment (https://archive.apache.org/dist/lucene/solr/6.5.0/)
> before cb9f15 commit gets into release but got the same response, no
> additional fields, as Solr 8.1.1. I have used the default managed schema
> settings in both Solr versions, which I guess means qparser is not used for
> /select in this case, is it?
>
> On Sat, Jul 20, 2019 at 2:02 AM Joel Bernstein <[hidden email]> wrote:
>
> > I suspect fetch is having problem due to this commit:
> >
> >
> >
> https://github.com/apache/lucene-solr/commit/cb9f151db4b5ad5c5f581b6b8cf2e5916ddb0f35#diff-98abfc8855d347035205c6f3afc2cde3
> >
> > Later local params were turned off for anything but the lucene qparser.
> > Which means this query doesn't work if /select is using edismax etc...
> >
> > This needs to be fixed.
> > Can you check to see if the qparser is for the /select handler on your
> > install?
> >
> > Anyway fetch needs to be reverted back to it's previous implementation
> > before the above commit basically broke it.
> >
> >
> >
> >
> > Joel Bernstein
> > http://joelsolr.blogspot.com/
> >
> >
> > On Fri, Jul 19, 2019 at 2:20 PM Ahmed Adel <[hidden email]> wrote:
> >
> > > Hi - Tried swapping the equality sides but (surprisingly?) got the same
> > > exact response. Any additional thoughts are appreciated.
> > >
> > > Best,
> > > A.
> > > http://aadel.io
> > >
> > > On Fri, Jul 19, 2019 at 5:27 PM Joel Bernstein <[hidden email]>
> > wrote:
> > >
> > > > Try:
> > > >
> > > > fetch(names,
> > > >      select(
> > > >          nodes(emails,
> > > >                      walk="[hidden email]->from",
> > > >                      gather="to"),
> > > >          node as to_s),
> > > >          fl="name",
> > > >     on="to_s=email")
> > > >
> > > >
> > > > According to the docs it looks like you have the fields reversed on
> the
> > > > fetch. If that doesn't work, I'll investigate further.
> > > >
> > > >
> > > >
> > > >
> > > > Joel Bernstein
> > > > http://joelsolr.blogspot.com/
> > > >
> > > >
> > > > On Fri, Jul 19, 2019 at 5:51 AM Ahmed Adel <[hidden email]>
> wrote:
> > > >
> > > > > Hi Joel,
> > > > >
> > > > > Thank you for your thoughts. I tried the fetch function, however,
> the
> > > > > response does not contain "fl" fields of the "fetch" expression.
> For
> > > the
> > > > > above example, the modified query is as follows:
> > > > >
> > > > > fetch(names, select(nodes(emails,
> > > > >       walk="[hidden email]->from",
> > > > >       gather="to"), node as to_s), fl="name", on="email=to_s")
> > > > >
> > > > >
> > > > > where "names" is a collection that contains two fields representing
> > > pairs
> > > > > of name and email: ("name", "email")
> > > > >
> > > > > The response returned is:
> > > > >
> > > > > { "result-set": { "docs": [ { "to_s": "[hidden email]"
> > > > > }, { "to_s": "[hidden email]"
> > > > > },
> > > > > ... { "EOF": true, "RESPONSE_TIME": 33 } ] } }
> > > > >
> > > > > The response should have an additional "name" field in each
> document
> > > > > returned. Any additional thoughts are appreciated.
> > > > >
> > > > > Best,
> > > > > A.
> > > > >
> > > > > On Thu, Jul 18, 2019 at 6:12 PM Joel Bernstein <[hidden email]
> >
> > > > wrote:
> > > > >
> > > > > > Hi Ahmed,
> > > > > >
> > > > > > Take a look at the fetch
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> https://lucene.apache.org/solr/guide/8_0/stream-decorator-reference.html#fetch
> > > > > >
> > > > > > It probably makes sense to allow more field to be returned from a
> > > nodes
> > > > > > expression as well.
> > > > > >
> > > > > > Joel Bernstein
> > > > > > http://joelsolr.blogspot.com/
> > > > > >
> > > > > >
> > > > > > On Wed, Jul 17, 2019 at 3:12 AM Ahmed Adel <[hidden email]>
> > > wrote:
> > > > > >
> > > > > > > Hi,
> > > > > > >
> > > > > > > Thank you for your reply. Could you give more details on the
> > „join“
> > > > > > > operation, such as what the sides of the join and the joining
> > > > condition
> > > > > > > would be in this case?
> > > > > > >
> > > > > > > Best regards,
> > > > > > > A.
> > > > > > >
> > > > > > > On Tue, Jul 16, 2019 at 2:02 PM markus kalkbrenner <
> > > > > > > [hidden email]> wrote:
> > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > You have to perform a „join“ to get more fields.
> > > > > > > >
> > > > > > > > > Am 16.07.2019 um 13:52 schrieb Ahmed Adel <
> [hidden email]
> > >:
> > > > > > > > >
> > > > > > > > > Hi,
> > > > > > > > >
> > > > > > > > > How can multiple fields be returned in graph traversal
> > > streaming
> > > > > > > > expression
> > > > > > > > > response documents? For example, the following query:
> > > > > > > > >
> > > > > > > > > nodes(emails,
> > > > > > > > >      walk="[hidden email]->from",
> > > > > > > > >      gather="to")
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > returns these documents in the response:
> > > > > > > > >
> > > > > > > > > {
> > > > > > > > >  "result-set": {
> > > > > > > > >    "docs": [
> > > > > > > > >      {
> > > > > > > > >        "node": "[hidden email]",
> > > > > > > > >        "collection": "emails",
> > > > > > > > >        "field": "to",
> > > > > > > > >        "level": 1
> > > > > > > > >      },
> > > > > > > > >      {
> > > > > > > > >        "node": "[hidden email]",
> > > > > > > > >        "collection": "emails",
> > > > > > > > >        "field": "to",
> > > > > > > > >        "level": 1
> > > > > > > > >      },
> > > > > > > > >      {
> > > > > > > > >        "node": "[hidden email]",
> > > > > > > > >        "collection": "emails",
> > > > > > > > >        "field": "to",
> > > > > > > > >        "level": 1
> > > > > > > > >      },
> > > > > > > > >      {
> > > > > > > > >        "EOF": true,
> > > > > > > > >        "RESPONSE_TIME": 44
> > > > > > > > >      }
> > > > > > > > >    ]
> > > > > > > > >  }
> > > > > > > > > }
> > > > > > > > >
> > > > > > > > > How can the query above be modified to return more document
> > > > fields,
> > > > > > > > > "subject" for example?
> > > > > > > > >
> > > > > > > > > Best regards,
> > > > > > > > >
> > > > > > > > > A.
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > > --
> > > Sent from my iPhone
> > >
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: Returning multiple fields in graph streaming expression response documents

Ahmed Adel-2
Yeah, it turned out to be related to the data. The “fetch” method works
fine as you described, it’s just the data distribution that caused name
field not to be fetched in a number of responses. I tested it with two
other collections and it worked as expected as well. Thank you for your
help getting this running.

Best,
A. Adel

On Sun, Jul 21, 2019 at 2:36 AM Joel Bernstein <[hidden email]> wrote:

> Ok, then it sounds like a different issue. Let's look at the logs following
> a request and see what the issue is. There will be a log record that shows
> the query that is sent to Solr by the fetch expression. When we look at
> that log we'll be able to see what the query is, and if results are
> returned. It could be a bug in the code or it could be something related to
> the data that's being fetched.
>
>
> Joel Bernstein
> http://joelsolr.blogspot.com/
>
>
> On Sat, Jul 20, 2019 at 5:21 PM Ahmed Adel <[hidden email]> wrote:
>
> > To validate this, I indexed the datasets and ran the same query on Solr
> > 6.5.0 environment (https://archive.apache.org/dist/lucene/solr/6.5.0/)
> > before cb9f15 commit gets into release but got the same response, no
> > additional fields, as Solr 8.1.1. I have used the default managed schema
> > settings in both Solr versions, which I guess means qparser is not used
> for
> > /select in this case, is it?
> >
> > On Sat, Jul 20, 2019 at 2:02 AM Joel Bernstein <[hidden email]>
> wrote:
> >
> > > I suspect fetch is having problem due to this commit:
> > >
> > >
> > >
> >
> https://github.com/apache/lucene-solr/commit/cb9f151db4b5ad5c5f581b6b8cf2e5916ddb0f35#diff-98abfc8855d347035205c6f3afc2cde3
> > >
> > > Later local params were turned off for anything but the lucene qparser.
> > > Which means this query doesn't work if /select is using edismax etc...
> > >
> > > This needs to be fixed.
> > > Can you check to see if the qparser is for the /select handler on your
> > > install?
> > >
> > > Anyway fetch needs to be reverted back to it's previous implementation
> > > before the above commit basically broke it.
> > >
> > >
> > >
> > >
> > > Joel Bernstein
> > > http://joelsolr.blogspot.com/
> > >
> > >
> > > On Fri, Jul 19, 2019 at 2:20 PM Ahmed Adel <[hidden email]> wrote:
> > >
> > > > Hi - Tried swapping the equality sides but (surprisingly?) got the
> same
> > > > exact response. Any additional thoughts are appreciated.
> > > >
> > > > Best,
> > > > A.
> > > > http://aadel.io
> > > >
> > > > On Fri, Jul 19, 2019 at 5:27 PM Joel Bernstein <[hidden email]>
> > > wrote:
> > > >
> > > > > Try:
> > > > >
> > > > > fetch(names,
> > > > >      select(
> > > > >          nodes(emails,
> > > > >                      walk="[hidden email]->from",
> > > > >                      gather="to"),
> > > > >          node as to_s),
> > > > >          fl="name",
> > > > >     on="to_s=email")
> > > > >
> > > > >
> > > > > According to the docs it looks like you have the fields reversed on
> > the
> > > > > fetch. If that doesn't work, I'll investigate further.
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > Joel Bernstein
> > > > > http://joelsolr.blogspot.com/
> > > > >
> > > > >
> > > > > On Fri, Jul 19, 2019 at 5:51 AM Ahmed Adel <[hidden email]>
> > wrote:
> > > > >
> > > > > > Hi Joel,
> > > > > >
> > > > > > Thank you for your thoughts. I tried the fetch function, however,
> > the
> > > > > > response does not contain "fl" fields of the "fetch" expression.
> > For
> > > > the
> > > > > > above example, the modified query is as follows:
> > > > > >
> > > > > > fetch(names, select(nodes(emails,
> > > > > >       walk="[hidden email]->from",
> > > > > >       gather="to"), node as to_s), fl="name", on="email=to_s")
> > > > > >
> > > > > >
> > > > > > where "names" is a collection that contains two fields
> representing
> > > > pairs
> > > > > > of name and email: ("name", "email")
> > > > > >
> > > > > > The response returned is:
> > > > > >
> > > > > > { "result-set": { "docs": [ { "to_s": "[hidden email]"
> > > > > > }, { "to_s": "[hidden email]"
> > > > > > },
> > > > > > ... { "EOF": true, "RESPONSE_TIME": 33 } ] } }
> > > > > >
> > > > > > The response should have an additional "name" field in each
> > document
> > > > > > returned. Any additional thoughts are appreciated.
> > > > > >
> > > > > > Best,
> > > > > > A.
> > > > > >
> > > > > > On Thu, Jul 18, 2019 at 6:12 PM Joel Bernstein <
> [hidden email]
> > >
> > > > > wrote:
> > > > > >
> > > > > > > Hi Ahmed,
> > > > > > >
> > > > > > > Take a look at the fetch
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> https://lucene.apache.org/solr/guide/8_0/stream-decorator-reference.html#fetch
> > > > > > >
> > > > > > > It probably makes sense to allow more field to be returned
> from a
> > > > nodes
> > > > > > > expression as well.
> > > > > > >
> > > > > > > Joel Bernstein
> > > > > > > http://joelsolr.blogspot.com/
> > > > > > >
> > > > > > >
> > > > > > > On Wed, Jul 17, 2019 at 3:12 AM Ahmed Adel <[hidden email]>
> > > > wrote:
> > > > > > >
> > > > > > > > Hi,
> > > > > > > >
> > > > > > > > Thank you for your reply. Could you give more details on the
> > > „join“
> > > > > > > > operation, such as what the sides of the join and the joining
> > > > > condition
> > > > > > > > would be in this case?
> > > > > > > >
> > > > > > > > Best regards,
> > > > > > > > A.
> > > > > > > >
> > > > > > > > On Tue, Jul 16, 2019 at 2:02 PM markus kalkbrenner <
> > > > > > > > [hidden email]> wrote:
> > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > You have to perform a „join“ to get more fields.
> > > > > > > > >
> > > > > > > > > > Am 16.07.2019 um 13:52 schrieb Ahmed Adel <
> > [hidden email]
> > > >:
> > > > > > > > > >
> > > > > > > > > > Hi,
> > > > > > > > > >
> > > > > > > > > > How can multiple fields be returned in graph traversal
> > > > streaming
> > > > > > > > > expression
> > > > > > > > > > response documents? For example, the following query:
> > > > > > > > > >
> > > > > > > > > > nodes(emails,
> > > > > > > > > >      walk="[hidden email]->from",
> > > > > > > > > >      gather="to")
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > returns these documents in the response:
> > > > > > > > > >
> > > > > > > > > > {
> > > > > > > > > >  "result-set": {
> > > > > > > > > >    "docs": [
> > > > > > > > > >      {
> > > > > > > > > >        "node": "[hidden email]",
> > > > > > > > > >        "collection": "emails",
> > > > > > > > > >        "field": "to",
> > > > > > > > > >        "level": 1
> > > > > > > > > >      },
> > > > > > > > > >      {
> > > > > > > > > >        "node": "[hidden email]",
> > > > > > > > > >        "collection": "emails",
> > > > > > > > > >        "field": "to",
> > > > > > > > > >        "level": 1
> > > > > > > > > >      },
> > > > > > > > > >      {
> > > > > > > > > >        "node": "[hidden email]",
> > > > > > > > > >        "collection": "emails",
> > > > > > > > > >        "field": "to",
> > > > > > > > > >        "level": 1
> > > > > > > > > >      },
> > > > > > > > > >      {
> > > > > > > > > >        "EOF": true,
> > > > > > > > > >        "RESPONSE_TIME": 44
> > > > > > > > > >      }
> > > > > > > > > >    ]
> > > > > > > > > >  }
> > > > > > > > > > }
> > > > > > > > > >
> > > > > > > > > > How can the query above be modified to return more
> document
> > > > > fields,
> > > > > > > > > > "subject" for example?
> > > > > > > > > >
> > > > > > > > > > Best regards,
> > > > > > > > > >
> > > > > > > > > > A.
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > > --
> > > > Sent from my iPhone
> > > >
> > >
> >
>
--
Ahmed Adel
VP of Engineering
delyvery.ai
Reply | Threaded
Open this post in threaded view
|

Re: Returning multiple fields in graph streaming expression response documents

Joel Bernstein
Good to hear.

Joel Bernstein
http://joelsolr.blogspot.com/


On Sun, Jul 21, 2019 at 5:21 PM Ahmed Adel <[hidden email]> wrote:

> Yeah, it turned out to be related to the data. The “fetch” method works
> fine as you described, it’s just the data distribution that caused name
> field not to be fetched in a number of responses. I tested it with two
> other collections and it worked as expected as well. Thank you for your
> help getting this running.
>
> Best,
> A. Adel
>
> On Sun, Jul 21, 2019 at 2:36 AM Joel Bernstein <[hidden email]> wrote:
>
> > Ok, then it sounds like a different issue. Let's look at the logs
> following
> > a request and see what the issue is. There will be a log record that
> shows
> > the query that is sent to Solr by the fetch expression. When we look at
> > that log we'll be able to see what the query is, and if results are
> > returned. It could be a bug in the code or it could be something related
> to
> > the data that's being fetched.
> >
> >
> > Joel Bernstein
> > http://joelsolr.blogspot.com/
> >
> >
> > On Sat, Jul 20, 2019 at 5:21 PM Ahmed Adel <[hidden email]> wrote:
> >
> > > To validate this, I indexed the datasets and ran the same query on Solr
> > > 6.5.0 environment (https://archive.apache.org/dist/lucene/solr/6.5.0/)
> > > before cb9f15 commit gets into release but got the same response, no
> > > additional fields, as Solr 8.1.1. I have used the default managed
> schema
> > > settings in both Solr versions, which I guess means qparser is not used
> > for
> > > /select in this case, is it?
> > >
> > > On Sat, Jul 20, 2019 at 2:02 AM Joel Bernstein <[hidden email]>
> > wrote:
> > >
> > > > I suspect fetch is having problem due to this commit:
> > > >
> > > >
> > > >
> > >
> >
> https://github.com/apache/lucene-solr/commit/cb9f151db4b5ad5c5f581b6b8cf2e5916ddb0f35#diff-98abfc8855d347035205c6f3afc2cde3
> > > >
> > > > Later local params were turned off for anything but the lucene
> qparser.
> > > > Which means this query doesn't work if /select is using edismax
> etc...
> > > >
> > > > This needs to be fixed.
> > > > Can you check to see if the qparser is for the /select handler on
> your
> > > > install?
> > > >
> > > > Anyway fetch needs to be reverted back to it's previous
> implementation
> > > > before the above commit basically broke it.
> > > >
> > > >
> > > >
> > > >
> > > > Joel Bernstein
> > > > http://joelsolr.blogspot.com/
> > > >
> > > >
> > > > On Fri, Jul 19, 2019 at 2:20 PM Ahmed Adel <[hidden email]>
> wrote:
> > > >
> > > > > Hi - Tried swapping the equality sides but (surprisingly?) got the
> > same
> > > > > exact response. Any additional thoughts are appreciated.
> > > > >
> > > > > Best,
> > > > > A.
> > > > > http://aadel.io
> > > > >
> > > > > On Fri, Jul 19, 2019 at 5:27 PM Joel Bernstein <[hidden email]
> >
> > > > wrote:
> > > > >
> > > > > > Try:
> > > > > >
> > > > > > fetch(names,
> > > > > >      select(
> > > > > >          nodes(emails,
> > > > > >                      walk="[hidden email]->from",
> > > > > >                      gather="to"),
> > > > > >          node as to_s),
> > > > > >          fl="name",
> > > > > >     on="to_s=email")
> > > > > >
> > > > > >
> > > > > > According to the docs it looks like you have the fields reversed
> on
> > > the
> > > > > > fetch. If that doesn't work, I'll investigate further.
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > Joel Bernstein
> > > > > > http://joelsolr.blogspot.com/
> > > > > >
> > > > > >
> > > > > > On Fri, Jul 19, 2019 at 5:51 AM Ahmed Adel <[hidden email]>
> > > wrote:
> > > > > >
> > > > > > > Hi Joel,
> > > > > > >
> > > > > > > Thank you for your thoughts. I tried the fetch function,
> however,
> > > the
> > > > > > > response does not contain "fl" fields of the "fetch"
> expression.
> > > For
> > > > > the
> > > > > > > above example, the modified query is as follows:
> > > > > > >
> > > > > > > fetch(names, select(nodes(emails,
> > > > > > >       walk="[hidden email]->from",
> > > > > > >       gather="to"), node as to_s), fl="name", on="email=to_s")
> > > > > > >
> > > > > > >
> > > > > > > where "names" is a collection that contains two fields
> > representing
> > > > > pairs
> > > > > > > of name and email: ("name", "email")
> > > > > > >
> > > > > > > The response returned is:
> > > > > > >
> > > > > > > { "result-set": { "docs": [ { "to_s": "[hidden email]"
> > > > > > > }, { "to_s": "[hidden email]"
> > > > > > > },
> > > > > > > ... { "EOF": true, "RESPONSE_TIME": 33 } ] } }
> > > > > > >
> > > > > > > The response should have an additional "name" field in each
> > > document
> > > > > > > returned. Any additional thoughts are appreciated.
> > > > > > >
> > > > > > > Best,
> > > > > > > A.
> > > > > > >
> > > > > > > On Thu, Jul 18, 2019 at 6:12 PM Joel Bernstein <
> > [hidden email]
> > > >
> > > > > > wrote:
> > > > > > >
> > > > > > > > Hi Ahmed,
> > > > > > > >
> > > > > > > > Take a look at the fetch
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> https://lucene.apache.org/solr/guide/8_0/stream-decorator-reference.html#fetch
> > > > > > > >
> > > > > > > > It probably makes sense to allow more field to be returned
> > from a
> > > > > nodes
> > > > > > > > expression as well.
> > > > > > > >
> > > > > > > > Joel Bernstein
> > > > > > > > http://joelsolr.blogspot.com/
> > > > > > > >
> > > > > > > >
> > > > > > > > On Wed, Jul 17, 2019 at 3:12 AM Ahmed Adel <
> [hidden email]>
> > > > > wrote:
> > > > > > > >
> > > > > > > > > Hi,
> > > > > > > > >
> > > > > > > > > Thank you for your reply. Could you give more details on
> the
> > > > „join“
> > > > > > > > > operation, such as what the sides of the join and the
> joining
> > > > > > condition
> > > > > > > > > would be in this case?
> > > > > > > > >
> > > > > > > > > Best regards,
> > > > > > > > > A.
> > > > > > > > >
> > > > > > > > > On Tue, Jul 16, 2019 at 2:02 PM markus kalkbrenner <
> > > > > > > > > [hidden email]> wrote:
> > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > You have to perform a „join“ to get more fields.
> > > > > > > > > >
> > > > > > > > > > > Am 16.07.2019 um 13:52 schrieb Ahmed Adel <
> > > [hidden email]
> > > > >:
> > > > > > > > > > >
> > > > > > > > > > > Hi,
> > > > > > > > > > >
> > > > > > > > > > > How can multiple fields be returned in graph traversal
> > > > > streaming
> > > > > > > > > > expression
> > > > > > > > > > > response documents? For example, the following query:
> > > > > > > > > > >
> > > > > > > > > > > nodes(emails,
> > > > > > > > > > >      walk="[hidden email]->from",
> > > > > > > > > > >      gather="to")
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > returns these documents in the response:
> > > > > > > > > > >
> > > > > > > > > > > {
> > > > > > > > > > >  "result-set": {
> > > > > > > > > > >    "docs": [
> > > > > > > > > > >      {
> > > > > > > > > > >        "node": "[hidden email]",
> > > > > > > > > > >        "collection": "emails",
> > > > > > > > > > >        "field": "to",
> > > > > > > > > > >        "level": 1
> > > > > > > > > > >      },
> > > > > > > > > > >      {
> > > > > > > > > > >        "node": "[hidden email]",
> > > > > > > > > > >        "collection": "emails",
> > > > > > > > > > >        "field": "to",
> > > > > > > > > > >        "level": 1
> > > > > > > > > > >      },
> > > > > > > > > > >      {
> > > > > > > > > > >        "node": "[hidden email]",
> > > > > > > > > > >        "collection": "emails",
> > > > > > > > > > >        "field": "to",
> > > > > > > > > > >        "level": 1
> > > > > > > > > > >      },
> > > > > > > > > > >      {
> > > > > > > > > > >        "EOF": true,
> > > > > > > > > > >        "RESPONSE_TIME": 44
> > > > > > > > > > >      }
> > > > > > > > > > >    ]
> > > > > > > > > > >  }
> > > > > > > > > > > }
> > > > > > > > > > >
> > > > > > > > > > > How can the query above be modified to return more
> > document
> > > > > > fields,
> > > > > > > > > > > "subject" for example?
> > > > > > > > > > >
> > > > > > > > > > > Best regards,
> > > > > > > > > > >
> > > > > > > > > > > A.
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > > --
> > > > > Sent from my iPhone
> > > > >
> > > >
> > >
> >
> --
> Ahmed Adel
> VP of Engineering
> delyvery.ai
>