Ok, I'll take a look. Thanks!

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

On Tue, Jun 27, 2017 at 10:01 AM, Susheel Kumar <susheel2...@gmail.com>
wrote:

> Hi Joel,
>
> I have submitted a patch to handle this.  Please review.
>
> https://issues.apache.org/jira/secure/attachment/12874681/SOLR-10944.patch
>
> Thanks,
> Susheel
>
> On Fri, Jun 23, 2017 at 12:32 PM, Susheel Kumar <susheel2...@gmail.com>
> wrote:
>
> > Thanks for confirming.  Here is the JIRA
> >
> > https://issues.apache.org/jira/browse/SOLR-10944
> >
> > On Fri, Jun 23, 2017 at 11:20 AM, Joel Bernstein <joels...@gmail.com>
> > wrote:
> >
> >> yeah, this looks like a bug in the get expression.
> >>
> >> Joel Bernstein
> >> http://joelsolr.blogspot.com/
> >>
> >> On Fri, Jun 23, 2017 at 11:07 AM, Susheel Kumar <susheel2...@gmail.com>
> >> wrote:
> >>
> >> > Hi Joel,
> >> >
> >> > As i am getting deeper, it doesn't look like a problem due to hashJoin
> >> etc.
> >> >
> >> >
> >> > Below is a simple let expr where if search would not find a match and
> >> > return 0 result.  In that case, I would expect get(a) to show a EOF
> >> tuple
> >> > while it is throwing exception. It looks like something wrong/bug in
> the
> >> > code.  Please suggest
> >> >
> >> > ===
> >> > let(a=search(collection1,
> >> >                         q=id:999999999,
> >> >                         fl="id,business_email",
> >> >                         sort="business_email asc"),
> >> > get(a)
> >> > )
> >> >
> >> >
> >> > {
> >> >   "result-set": {
> >> >     "docs": [
> >> >       {
> >> >         "EXCEPTION": "Index: 0, Size: 0",
> >> >         "EOF": true,
> >> >         "RESPONSE_TIME": 8
> >> >       }
> >> >     ]
> >> >   }
> >> > }
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> > On Fri, Jun 23, 2017 at 7:44 AM, Joel Bernstein <joels...@gmail.com>
> >> > wrote:
> >> >
> >> > > Ok, I hadn't anticipated some of the scenarios that you've been
> trying
> >> > out.
> >> > > Particularly reading streams into variables and performing joins
> >> etc...
> >> > >
> >> > > The main idea with variables was to use them with the new
> statistical
> >> > > evaluators. So you perform retrievals (search, random, nodes, knn
> >> etc...)
> >> > > set the results to variables and then perform statistical analysis.
> >> > >
> >> > > The problem with joining variables is that is doesn't scale very
> well
> >> > > because all the records are read into memory. Also the parallel
> stream
> >> > > won't work over variables.
> >> > >
> >> > > Joel Bernstein
> >> > > http://joelsolr.blogspot.com/
> >> > >
> >> > > On Thu, Jun 22, 2017 at 3:50 PM, Susheel Kumar <
> susheel2...@gmail.com
> >> >
> >> > > wrote:
> >> > >
> >> > > > Hi Joel,
> >> > > >
> >> > > > I am able to reproduce this in a simple way.  Looks like Let
> Stream
> >> is
> >> > > > having some issues.  Below complement function works fine if I
> >> execute
> >> > > > outside let and returns an EOF:true tuple but if a tuple with
> >> EOF:true
> >> > > > assigned to let variable, it gets changed to EXCEPTION "Index 0,
> >> Size
> >> > 0"
> >> > > > etc.
> >> > > >
> >> > > > So let stream not able to handle the stream/results which has only
> >> EOF
> >> > > > tuple and breaks the whole let expression block
> >> > > >
> >> > > >
> >> > > > ===Complement inside let
> >> > > > let(
> >> > > > a=echo(Hello),
> >> > > > b=complement(sort(select(tuple(id=1,email="A"),id,email),by="id
> >> > > asc,email
> >> > > > asc"),
> >> > > > sort(select(tuple(id=1,email="A"),id,email),by="id asc,email
> asc"),
> >> > > > on="id,email"),
> >> > > > c=get(b),
> >> > > > get(a)
> >> > > > )
> >> > > >
> >> > > > Result
> >> > > > ===
> >> > > > {
> >> > > >   "result-set": {
> >> > > >     "docs": [
> >> > > >       {
> >> > > >         "EXCEPTION": "Index: 0, Size: 0",
> >> > > >         "EOF": true,
> >> > > >         "RESPONSE_TIME": 1
> >> > > >       }
> >> > > >     ]
> >> > > >   }
> >> > > > }
> >> > > >
> >> > > > ===Complement outside let
> >> > > >
> >> > > > complement(sort(select(tuple(id=1,email="A"),id,email),by="id
> >> > asc,email
> >> > > > asc"),
> >> > > > sort(select(tuple(id=1,email="A"),id,email),by="id asc,email
> asc"),
> >> > > > on="id,email")
> >> > > >
> >> > > > Result
> >> > > > ===
> >> > > > { "result-set": { "docs": [ { "EOF": true, "RESPONSE_TIME": 0 } ]
> }
> >> }
> >> > > >
> >> > > >
> >> > > >
> >> > > >
> >> > > >
> >> > > >
> >> > > >
> >> > > >
> >> > > > On Thu, Jun 22, 2017 at 11:55 AM, Susheel Kumar <
> >> susheel2...@gmail.com
> >> > >
> >> > > > wrote:
> >> > > >
> >> > > > > Sorry for typo
> >> > > > >
> >> > > > > Facing a weird behavior when using hashJoin / innerJoin etc. The
> >> > below
> >> > > > > expression display tuples from variable a shown below
> >> > > > >
> >> > > > >
> >> > > > > let(a=fetch(SMS,having(rollup(over=email,
> >> > > > >                  count(email),
> >> > > > >                 select(search(SMS,
> >> > > > >                         q=*:*,
> >> > > > >                         fl="id,dv_sv_business_email",
> >> > > > >                         sort="dv_sv_business_email asc"),
> >> > > > >    id,
> >> > > > >    dv_sv_business_email as email)),
> >> > > > >     eq(count(email),1)),
> >> > > > > fl="id,dv_sv_business_email as email",
> >> > > > > on="email=dv_sv_business_email"),
> >> > > > > b=fetch(SMS,having(rollup(over=email,
> >> > > > >                  count(email),
> >> > > > >                 select(search(SMS,
> >> > > > >                         q=*:*,
> >> > > > >                         fl="id,dv_sv_personal_email",
> >> > > > >                         sort="dv_sv_personal_email asc"),
> >> > > > >    id,
> >> > > > >    dv_sv_personal_email as email)),
> >> > > > >     eq(count(email),1)),
> >> > > > > fl="id,dv_sv_personal_email as email",
> >> > > > > on="email=dv_sv_personal_email"),
> >> > > > > c=innerJoin(sort(get(a),by="email asc"),sort(get(b),by="email
> >> > > > > asc"),on="email"),
> >> > > > > #d=select(get(c),id,email),
> >> > > > > get(a)
> >> > > > > )
> >> > > > >
> >> > > > > var a result
> >> > > > > ==
> >> > > > > {
> >> > > > >   "result-set": {
> >> > > > >     "docs": [
> >> > > > >       {
> >> > > > >         "count(email)": 1,
> >> > > > >         "id": "1",
> >> > > > >         "email": "A"
> >> > > > >       },
> >> > > > >       {
> >> > > > >         "count(email)": 1,
> >> > > > >         "id": "2",
> >> > > > >         "email": "C"
> >> > > > >       },
> >> > > > >       {
> >> > > > >         "EOF": true,
> >> > > > >         "RESPONSE_TIME": 18
> >> > > > >       }
> >> > > > >     ]
> >> > > > >   }
> >> > > > > }
> >> > > > >
> >> > > > > And after uncomment var d above, even though we are displaying
> a,
> >> we
> >> > > get
> >> > > > > results shown below. I understand that join in my test data
> didn't
> >> > find
> >> > > > any
> >> > > > > match but then it should not skew up the results of var a.  When
> >> data
> >> > > > > matches during join then its fine but otherwise I am running
> into
> >> > this
> >> > > > > issue and whole next expressions doesn't get evaluated due to
> >> this...
> >> > > > >
> >> > > > >
> >> > > > > after uncomment var d
> >> > > > > ===
> >> > > > > {
> >> > > > >   "result-set": {
> >> > > > >     "docs": [
> >> > > > >       {
> >> > > > >         "EXCEPTION": "Index: 0, Size: 0",
> >> > > > >         "EOF": true,
> >> > > > >         "RESPONSE_TIME": 44
> >> > > > >       }
> >> > > > >     ]
> >> > > > >   }
> >> > > > > }
> >> > > > >
> >> > > > > On Thu, Jun 22, 2017 at 11:51 AM, Susheel Kumar <
> >> > susheel2...@gmail.com
> >> > > >
> >> > > > > wrote:
> >> > > > >
> >> > > > >> Hello Joel,
> >> > > > >>
> >> > > > >> Facing a weird behavior when using hashJoin / innerJoin etc.
> The
> >> > below
> >> > > > >> expression display tuples from variable a   and the moment I
> use
> >> get
> >> > > on
> >> > > > >> innerJoin / hashJoin expr on variable c
> >> > > > >>
> >> > > > >>
> >> > > > >> let(a=fetch(SMS,having(rollup(over=email,
> >> > > > >>                  count(email),
> >> > > > >>                 select(search(SMS,
> >> > > > >>                         q=*:*,
> >> > > > >>                         fl="id,dv_sv_business_email",
> >> > > > >>                         sort="dv_sv_business_email asc"),
> >> > > > >>    id,
> >> > > > >>    dv_sv_business_email as email)),
> >> > > > >>     eq(count(email),1)),
> >> > > > >> fl="id,dv_sv_business_email as email",
> >> > > > >> on="email=dv_sv_business_email"),
> >> > > > >> b=fetch(SMS,having(rollup(over=email,
> >> > > > >>                  count(email),
> >> > > > >>                 select(search(SMS,
> >> > > > >>                         q=*:*,
> >> > > > >>                         fl="id,dv_sv_personal_email",
> >> > > > >>                         sort="dv_sv_personal_email asc"),
> >> > > > >>    id,
> >> > > > >>    dv_sv_personal_email as email)),
> >> > > > >>     eq(count(email),1)),
> >> > > > >> fl="id,dv_sv_personal_email as email",
> >> > > > >> on="email=dv_sv_personal_email"),
> >> > > > >> c=innerJoin(sort(get(a),by="email asc"),sort(get(b),by="email
> >> > > > >> asc"),on="email"),
> >> > > > >> #d=select(get(c),id,email),
> >> > > > >> get(a)
> >> > > > >> )
> >> > > > >>
> >> > > > >> var a result
> >> > > > >> ==
> >> > > > >> {
> >> > > > >>   "result-set": {
> >> > > > >>     "docs": [
> >> > > > >>       {
> >> > > > >>         "count(email)": 1,
> >> > > > >>         "id": "1",
> >> > > > >>         "email": "A"
> >> > > > >>       },
> >> > > > >>       {
> >> > > > >>         "count(email)": 1,
> >> > > > >>         "id": "2",
> >> > > > >>         "email": "C"
> >> > > > >>       },
> >> > > > >>       {
> >> > > > >>         "EOF": true,
> >> > > > >>         "RESPONSE_TIME": 18
> >> > > > >>       }
> >> > > > >>     ]
> >> > > > >>   }
> >> > > > >> }
> >> > > > >>
> >> > > > >> after uncomment var d above, even though we are displaying a,
> we
> >> get
> >> > > > >> results like below. I understand that join in my test data
> didn't
> >> > find
> >> > > > any
> >> > > > >> match but then it should not skew up the results of var a.
> When
> >> > data
> >> > > > >> matches during join then its fine but otherwise I am running
> into
> >> > this
> >> > > > >> issue and whole next expressions doesn't get evaluated due to
> >> > this...
> >> > > > >>
> >> > > > >>
> >> > > > >> {
> >> > > > >>   "result-set": {
> >> > > > >>     "docs": [
> >> > > > >>       {
> >> > > > >>         "EXCEPTION": "Index: 0, Size: 0",
> >> > > > >>         "EOF": true,
> >> > > > >>         "RESPONSE_TIME": 44
> >> > > > >>       }
> >> > > > >>     ]
> >> > > > >>   }
> >> > > > >> }
> >> > > > >>
> >> > > > >
> >> > > > >
> >> > > >
> >> > >
> >> >
> >>
> >
> >
>

Reply via email to