Please let me know if I shall create a JIRA and i can provide both
expressions and data to reproduce.

On Thu, Jun 22, 2017 at 11:23 AM, Susheel Kumar <susheel2...@gmail.com>
wrote:

> Yes, i tried building up expression piece by piece but looks like there is
> an issue with how complement expects / behave for sort.
>
> if i use below g and h expr inside complement which are already sorted
> (sort) then it doesn't work
>
> e=select(get(c),id,email),
> f=select(get(d),id,email),
> g=sort(get(e),by="id asc,email asc"),
> h=sort(get(f),by="id asc,email asc"),
> i=complement(get(g),get(h),on="id,email"),
>
> while below worked when i use e and f expr and sort them within complement
> function instead of using g and h directly
>
> e=select(get(c),id,email),
> f=select(get(d),id,email),
> g=sort(get(e),by="id asc,email asc"),
> h=sort(get(f),by="id asc,email asc"),
> i=complement(
> sort(get(e),by="id asc,email asc"),sort(get(f),by="id asc,email asc")
> ,on="id,email"),
>
> So I am good for now with above approach but running into another issue
> with empty/null/"Index 0, Size 0" set and will start another thread for
> that (Need your help there :-)).
>
> Appreciate and thanks for all your help while I try to solve my use case
> using streaming expressions.
>
>
> On Thu, Jun 22, 2017 at 11:10 AM, Joel Bernstein <joels...@gmail.com>
> wrote:
>
>> I suspect something is wrong in the syntax but I'm not seeing it.
>>
>> Have you tried building up the expression piece by piece until you get the
>> syntax error?
>>
>> Joel Bernstein
>> http://joelsolr.blogspot.com/
>>
>> On Wed, Jun 21, 2017 at 3:20 PM, Susheel Kumar <susheel2...@gmail.com>
>> wrote:
>>
>> > While simple complement works in this way
>> >
>> > ===
>> > complement(merge(sort(select(echo("A"),echo as email),by="email asc"),
>> > sort(select(echo("B"),echo as email),by="email asc"),
>> > on="email asc"),
>> > merge(sort(select(echo("A"),echo as email),by="email asc"),
>> > sort(select(echo("D"),echo as email),by="email asc"),on="email asc"),
>> > on="email")
>> >
>> > BUT below it doesn't work when used in similar way
>> >
>> > ===
>> > let(a=fetch(collection1,having(rollup(over=email,
>> >                  count(email),
>> >                 select(search(collection1,
>> >                         q=*:*,
>> >                         fl="id,business_email",
>> >                         sort="business_email asc"),
>> >    id,
>> >    business_email as email)),
>> >     eq(count(email),1)),
>> > fl="id,business_email as email",
>> > on="email=business_email"),
>> > b=fetch(collection1,having(rollup(over=email,
>> >                  count(email),
>> >                 select(search(collection1,
>> >                         q=*:*,
>> >                         fl="id,personal_email",
>> >                         sort="personal_email asc"),
>> >    id,
>> >    personal_email as email)),
>> >     eq(count(email),1)),
>> > fl="id,personal_email as email",
>> > on="email=personal_email"),
>> > c=hashJoin(get(a),hashed=get(b),on="email"),
>> > d=hashJoin(get(b),hashed=get(a),on="email"),
>> > e=select(get(c),id,email),
>> > f=select(get(d),id,email),
>> > g=sort(get(e),by="id asc,email asc"),
>> > h=sort(get(f),by="id asc,email asc"),
>> > i=complement(get(g),get(h),on="id,email"),
>> > get(i)
>> > )
>> >
>> >
>> > On Wed, Jun 21, 2017 at 11:29 AM, Susheel Kumar <susheel2...@gmail.com>
>> > wrote:
>> >
>> > > Hi,
>> > >
>> > > Two issues with complement function (solr 6.6)
>> > >
>> > > 1)  When i execute below streaming expression,
>> > >
>> > > ==
>> > >
>> > > let(a=fetch(collection1,having(rollup(over=email,
>> > >                  count(email),
>> > >                 select(search(collection1,
>> > >                         q=*:*,
>> > >                         fl="id,business_email",
>> > >                         sort="business_email asc"),
>> > >    id,
>> > >    business_email as email)),
>> > >     eq(count(email),1)),
>> > > fl="id,business_email as email",
>> > > on="email=business_email"),
>> > > b=fetch(collection1,having(rollup(over=email,
>> > >                  count(email),
>> > >                 select(search(collection1,
>> > >                         q=*:*,
>> > >                         fl="id,personal_email",
>> > >                         sort="personal_email asc"),
>> > >    id,
>> > >    personal_email as email)),
>> > >     eq(count(email),1)),
>> > > fl="id,personal_email as email",
>> > > on="email=personal_email"),
>> > > c=hashJoin(get(a),hashed=get(b),on="email"),
>> > > d=hashJoin(get(b),hashed=get(a),on="email"),
>> > > e=select(get(c),id,email),
>> > > f=select(get(d),id,email),
>> > > g=sort(get(e),by="id asc,email asc"),
>> > > h=sort(get(f),by="id asc,email asc"),
>> > > i=complement(get(g),get(h),on="id,email"),
>> > > get(i)
>> > > )
>> > >
>> > >
>> > > getting response as
>> > >
>> > > { "result-set": { "docs": [ { "EXCEPTION": "Invalid ReducerStream -
>> > > substream comparator (sort) must be a superset of this stream's
>> > > comparator.", "EOF": true } ] } }
>> > >
>> > > 2) when i execute below
>> > >
>> > >
>> > > complement(
>> > >   select(search(collection1, q=*:*, fl="id,business_email", sort="id
>> > asc, business_email asc"),id,business_email as email),
>> > >   select(search(collection1, q=*:*, fl="id,personal_email", sort="id
>> > asc, personal_email asc"),id,personal_email as email),
>> > >   on="id,email"
>> > > )
>> > >
>> > > getting response as
>> > >
>> > > {
>> > >   "result-set": {
>> > >     "docs": [
>> > >       {
>> > >         "EXCEPTION": "Invalid expression complement(
>> > select(search(collection1, q=*:*, fl=\"id,business_email\", sort=\"id
>> asc,
>> > business_email asc\"),id,business_email as email),
>> > select(search(collection1, q=*:*, fl=\"id,personal_email\", sort=\"id
>> asc,
>> > personal_email asc\"),id,personal_email as email),  on=\"id,email\") -
>> > unknown operands found",
>> > >         "EOF": true
>> > >       }
>> > >     ]
>> > >   }
>> > > }
>> > >
>> > >
>> >
>>
>
>

Reply via email to