Re: Complement Stream function - Invalid ReducerStream - substream comparator (sort) must be a superset of this stream's comparator
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 Kumarwrote: > 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 > 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 > > 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 > >> 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"), > >> > >
Re: Complement Stream function - Invalid ReducerStream - substream comparator (sort) must be a superset of this stream's comparator
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 Kumarwrote: > 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 > 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 >> 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 >> > 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 >>
Re: Complement Stream function - Invalid ReducerStream - substream comparator (sort) must be a superset of this stream's comparator
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 Bernsteinwrote: > 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 > 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 > > 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
Re: Complement Stream function - Invalid ReducerStream - substream comparator (sort) must be a superset of this stream's comparator
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 Kumarwrote: > 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 > 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 > > } > > ] > > } > > } > > > > >
Re: Complement Stream function - Invalid ReducerStream - substream comparator (sort) must be a superset of this stream's comparator
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 Kumarwrote: > 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 > } > ] > } > } > >