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