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 > } > ] > } > } > >