Re: Streaming expressions and fetch()

2018-06-20 Thread Dariusz Wojtas
I have filled a JIRA Issue: SOLR-12505

Best regards,
Darek

On Mon, Jun 18, 2018 at 11:08 PM, Dariusz Wojtas  wrote:

> Hi,
> I thing this might give some clue.
> I tried to reproduce the issue with a collection called testCloud.
>
> fetch(testCloud1,
>   search(testCloud1, q="*:*", fq="type:name", fl="parentId",
> sort="parentId asc"),
>   fl="id,name",
>   on="parentId=id")
>
> The expression above produces 3 log entries presented below (just cut the
> content before 'webapp' in each line to save space):
>
> webapp=/solr path=/stream params={expr=fetch(testCloud1,
> %0a++search(testCloud1,+q%3D"*:*",+fq%3D"type:name",+fl%
> 3D"parentId",+sort%3D"parentId+asc"),%0a++fl%3D"
> id,name",%0a++on%3D"parentId%3Did")&_=1529178931117} status=0 QTime=1
> webapp=/solr path=/select params={q=*:*&distrib=false&
> fl=parentId&fq=type:name&sort=parentId+asc&wt=json&version=2.2} hits=1
> status=0 QTime=1
> webapp=/solr path=/select params={q={!+df%3Did+q.op%
> 3DOR+cache%3Dfalse+}+123&distrib=false&fl=id,name,_
> version_&sort=_version_+desc&rows=50&wt=json&version=2.2} hits=0 status=0
> QTime=1
>
> If I use the 3rd line parameters with an url:
> http://10.0.75.1:8983/solr/testCloud1/select?q={!+df%
> 3Did+q.op%3DOR+cache%3Dfalse+}+123&distrib=false&fl=id,name,
> _version_&sort=_version_+desc&rows=50&wt=json&version=2.2
> 
>
> then the resultset is empty. It searches for 'id' value fo 123.
> BUT if I remove the plus sign before the '123' and have url like this:
> http://10.0.75.1:8983/solr/testCloud1/select?q={!+df%
> 3Did+q.op%3DOR+cache%3Dfalse+}123&distrib=false&fl=id,name,_
> version_&sort=_version_+desc&rows=50&wt=json&version=2.2
> 
>
> THEN IT RETURNS SINGLE ROW WITH EXPECTED VALUES.
> Maybe this gives some light? Maybe it's about the enriching query syntax?
>
> I have tried with fetch containing query that returns more identifiers.
> In the 3rd log entry the identifiers start with a plus sign and are
> separated with pluses, as in the log entry below
> q={!+df%3Did+q.op%3DOR+cache%3Dfalse+}+123+124&distrib=
> false&fl=id,name,_version_&sort=_version_+desc&rows=50&wt=json&version=2.2
> No results returned, and the data is not enriched with additional
> attributes.
>
> Best regards,
> Darek
>
>
> On Mon, Jun 18, 2018 at 3:07 PM, Joel Bernstein 
> wrote:
>
>> There is a test case working that is basically the same construct that you
>> are having issues with. So, I think the next step is to try and reproduce
>> the problem that you are seeing in a test case.
>>
>> If you have a small sample test dataset I can use to reproduce the error
>> please create a jira ticket and I will work on the issue.
>>
>> Joel Bernstein
>> http://joelsolr.blogspot.com/
>>
>> On Sun, Jun 17, 2018 at 2:40 PM, Dariusz Wojtas 
>> wrote:
>>
>> > Hi,
>> > I am trying to use streaming expressions with SOLR 7.3.1.
>> > I have successfully used innerJoin, leftOuterJoin and several other
>> > functions but failed to achieve expected results with the fetch()
>> function.
>> >
>> > Example below is silmplfied, in reality the base search() function uses
>> > fuzzy matching and scoring. And works perfectly.
>> > But I need to enrich the search results with additional column from the
>> > same collection.
>> > search() call does a query on nested documents, and returns parentId
>> (yes,
>> > i know there is _root_, tried it as well) + some calculated custom
>> values,
>> > requiring some aggregation calls, like rollup(). This part works
>> perfectly.
>> > But then I want to enrich the resultset with attributes from the top
>> level
>> > document, where "parentId=id".
>> > And all my attempts to fetch additional data have failed, the fetch()
>> call
>> > below always gives the same results as the search() call inside.
>> >
>> > fetch(users,
>> >   search(users, q="*:*", fq="type:name", fl="parentId",
>> sort="parentId
>> > asc"),
>> >   fl="id,name",
>> >   on="parentId=id")
>> >
>> > As I understand fetch() should retrieve only records narrowed by the
>> > "parentId" results.
>> > If I call leftOuterJoin(), then I loose the benefit of such nice
>> narrowing
>> > call.
>> > Any clue what i am doing wrong with fetch()?
>> >
>> > Best regards,
>> > Darek
>> >
>>
>
>


Re: Streaming expressions and fetch()

2018-06-18 Thread Dariusz Wojtas
Hi,
I thing this might give some clue.
I tried to reproduce the issue with a collection called testCloud.

fetch(testCloud1,
  search(testCloud1, q="*:*", fq="type:name", fl="parentId",
sort="parentId asc"),
  fl="id,name",
  on="parentId=id")

The expression above produces 3 log entries presented below (just cut the
content before 'webapp' in each line to save space):

webapp=/solr path=/stream
params={expr=fetch(testCloud1,%0a++search(testCloud1,+q%3D"*:*",+fq%3D"type:name",+fl%3D"parentId",+sort%3D"parentId+asc"),%0a++fl%3D"id,name",%0a++on%3D"parentId%3Did")&_=1529178931117}
status=0 QTime=1
webapp=/solr path=/select
params={q=*:*&distrib=false&fl=parentId&fq=type:name&sort=parentId+asc&wt=json&version=2.2}
hits=1 status=0 QTime=1
webapp=/solr path=/select
params={q={!+df%3Did+q.op%3DOR+cache%3Dfalse+}+123&distrib=false&fl=id,name,_version_&sort=_version_+desc&rows=50&wt=json&version=2.2}
hits=0 status=0 QTime=1

If I use the 3rd line parameters with an url:
http://10.0.75.1:8983/solr/testCloud1/select?q={!+df%3Did+q.op%3DOR+cache%3Dfalse+}+123&distrib=false&fl=id,name,_version_&sort=_version_+desc&rows=50&wt=json&version=2.2

then the resultset is empty. It searches for 'id' value fo 123.
BUT if I remove the plus sign before the '123' and have url like this:
http://10.0.75.1:8983/solr/testCloud1/select?q={!+df%3Did+q.op%3DOR+cache%3Dfalse+}123&distrib=false&fl=id,name,_version_&sort=_version_+desc&rows=50&wt=json&version=2.2

THEN IT RETURNS SINGLE ROW WITH EXPECTED VALUES.
Maybe this gives some light? Maybe it's about the enriching query syntax?

I have tried with fetch containing query that returns more identifiers.
In the 3rd log entry the identifiers start with a plus sign and are
separated with pluses, as in the log entry below

q={!+df%3Did+q.op%3DOR+cache%3Dfalse+}+123+124&distrib=false&fl=id,name,_version_&sort=_version_+desc&rows=50&wt=json&version=2.2
No results returned, and the data is not enriched with additional
attributes.

Best regards,
Darek


On Mon, Jun 18, 2018 at 3:07 PM, Joel Bernstein  wrote:

> There is a test case working that is basically the same construct that you
> are having issues with. So, I think the next step is to try and reproduce
> the problem that you are seeing in a test case.
>
> If you have a small sample test dataset I can use to reproduce the error
> please create a jira ticket and I will work on the issue.
>
> Joel Bernstein
> http://joelsolr.blogspot.com/
>
> On Sun, Jun 17, 2018 at 2:40 PM, Dariusz Wojtas  wrote:
>
> > Hi,
> > I am trying to use streaming expressions with SOLR 7.3.1.
> > I have successfully used innerJoin, leftOuterJoin and several other
> > functions but failed to achieve expected results with the fetch()
> function.
> >
> > Example below is silmplfied, in reality the base search() function uses
> > fuzzy matching and scoring. And works perfectly.
> > But I need to enrich the search results with additional column from the
> > same collection.
> > search() call does a query on nested documents, and returns parentId
> (yes,
> > i know there is _root_, tried it as well) + some calculated custom
> values,
> > requiring some aggregation calls, like rollup(). This part works
> perfectly.
> > But then I want to enrich the resultset with attributes from the top
> level
> > document, where "parentId=id".
> > And all my attempts to fetch additional data have failed, the fetch()
> call
> > below always gives the same results as the search() call inside.
> >
> > fetch(users,
> >   search(users, q="*:*", fq="type:name", fl="parentId",
> sort="parentId
> > asc"),
> >   fl="id,name",
> >   on="parentId=id")
> >
> > As I understand fetch() should retrieve only records narrowed by the
> > "parentId" results.
> > If I call leftOuterJoin(), then I loose the benefit of such nice
> narrowing
> > call.
> > Any clue what i am doing wrong with fetch()?
> >
> > Best regards,
> > Darek
> >
>


Re: Streaming expressions and fetch()

2018-06-18 Thread Joel Bernstein
There is a test case working that is basically the same construct that you
are having issues with. So, I think the next step is to try and reproduce
the problem that you are seeing in a test case.

If you have a small sample test dataset I can use to reproduce the error
please create a jira ticket and I will work on the issue.

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

On Sun, Jun 17, 2018 at 2:40 PM, Dariusz Wojtas  wrote:

> Hi,
> I am trying to use streaming expressions with SOLR 7.3.1.
> I have successfully used innerJoin, leftOuterJoin and several other
> functions but failed to achieve expected results with the fetch() function.
>
> Example below is silmplfied, in reality the base search() function uses
> fuzzy matching and scoring. And works perfectly.
> But I need to enrich the search results with additional column from the
> same collection.
> search() call does a query on nested documents, and returns parentId (yes,
> i know there is _root_, tried it as well) + some calculated custom values,
> requiring some aggregation calls, like rollup(). This part works perfectly.
> But then I want to enrich the resultset with attributes from the top level
> document, where "parentId=id".
> And all my attempts to fetch additional data have failed, the fetch() call
> below always gives the same results as the search() call inside.
>
> fetch(users,
>   search(users, q="*:*", fq="type:name", fl="parentId", sort="parentId
> asc"),
>   fl="id,name",
>   on="parentId=id")
>
> As I understand fetch() should retrieve only records narrowed by the
> "parentId" results.
> If I call leftOuterJoin(), then I loose the benefit of such nice narrowing
> call.
> Any clue what i am doing wrong with fetch()?
>
> Best regards,
> Darek
>


Streaming expressions and fetch()

2018-06-17 Thread Dariusz Wojtas
Hi,
I am trying to use streaming expressions with SOLR 7.3.1.
I have successfully used innerJoin, leftOuterJoin and several other
functions but failed to achieve expected results with the fetch() function.

Example below is silmplfied, in reality the base search() function uses
fuzzy matching and scoring. And works perfectly.
But I need to enrich the search results with additional column from the
same collection.
search() call does a query on nested documents, and returns parentId (yes,
i know there is _root_, tried it as well) + some calculated custom values,
requiring some aggregation calls, like rollup(). This part works perfectly.
But then I want to enrich the resultset with attributes from the top level
document, where "parentId=id".
And all my attempts to fetch additional data have failed, the fetch() call
below always gives the same results as the search() call inside.

fetch(users,
  search(users, q="*:*", fq="type:name", fl="parentId", sort="parentId
asc"),
  fl="id,name",
  on="parentId=id")

As I understand fetch() should retrieve only records narrowed by the
"parentId" results.
If I call leftOuterJoin(), then I loose the benefit of such nice narrowing
call.
Any clue what i am doing wrong with fetch()?

Best regards,
Darek