I think it makes sense to create a jira ticket. Joel Bernstein http://joelsolr.blogspot.com/
On Thu, Jun 22, 2017 at 2:43 PM, Susheel Kumar <susheel2...@gmail.com> wrote: > 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 > >> > > } > >> > > ] > >> > > } > >> > > } > >> > > > >> > > > >> > > >> > > > > >