Hi Joel,

Thanks for the clarification.

Would like to check, is this the correct way to do the join? Currently, I
could not get any results after putting in the hashJoin for the 3rd,
smallerStream collection (collection3).

http://localhost:8983/solr/collection1/stream?expr=hashJoin(parallel(collection2
,
innerJoin(
 search(collection2,
q=*:*,
fl="a_s,b_s,c_s,d_s,e_s",
             sort="a_s asc",
partitionKeys="a_s",
rows=200),
 search(collection1,
q=*:*,
fl="a_s,f_s,g_s,h_s,i_s,j_s",
             sort="a_s asc",
partitionKeys="a_s",
rows=200),
         on="a_s"),
workers="2",
                 sort="a_s asc"),
         hashed=search(collection3,
q=*:*,
fl="a_s,k_s,l_s",
sort="a_s asc",
rows=200),
on="a_s")
&indent=true


Regards,
Edwin


On 3 May 2017 at 20:59, Joel Bernstein <joels...@gmail.com> wrote:

> Sorry, it's just called hashJoin
>
> Joel Bernstein
> http://joelsolr.blogspot.com/
>
> On Wed, May 3, 2017 at 2:45 AM, Zheng Lin Edwin Yeo <edwinye...@gmail.com>
> wrote:
>
> > Hi Joel,
> >
> > I am getting this error when I used the innerHashJoin.
> >
> >  "EXCEPTION":"Invalid stream expression innerHashJoin(parallel(innerJoin
> >
> > I also can't find the documentation on innerHashJoin for the Streaming
> > Expressions.
> >
> > Are you referring to hashJoin?
> >
> > Regards,
> > Edwin
> >
> >
> > On 3 May 2017 at 13:20, Zheng Lin Edwin Yeo <edwinye...@gmail.com>
> wrote:
> >
> > > Hi Joel,
> > >
> > > Thanks for the info.
> > >
> > > Regards,
> > > Edwin
> > >
> > >
> > > On 3 May 2017 at 02:04, Joel Bernstein <joels...@gmail.com> wrote:
> > >
> > >> Also take a look at the documentation for the "fetch" streaming
> > >> expression.
> > >>
> > >> Joel Bernstein
> > >> http://joelsolr.blogspot.com/
> > >>
> > >> On Tue, May 2, 2017 at 2:03 PM, Joel Bernstein <joels...@gmail.com>
> > >> wrote:
> > >>
> > >> > Yes you join more then one collection with Streaming Expressions.
> Here
> > >> are
> > >> > a few things to keep in mind.
> > >> >
> > >> > * You'll likely want to use the parallel function around the largest
> > >> join.
> > >> > You'll need to use the join keys as the partitionKeys.
> > >> > * innerJoin: requires that the streams be sorted on the join keys.
> > >> > * innerHashJoin: has no sorting requirement.
> > >> >
> > >> > So a strategy for a three collection join might look like this:
> > >> >
> > >> > innerHashJoin(parallel(innerJoin(bigStream, bigStream)),
> > smallerStream)
> > >> >
> > >> > The largest join can be done in parallel using an innerJoin. You can
> > >> then
> > >> > wrap the stream coming out of the parallel function in an
> > innerHashJoin
> > >> to
> > >> > join it to another stream.
> > >> >
> > >> >
> > >> >
> > >> >
> > >> >
> > >> >
> > >> >
> > >> >
> > >> >
> > >> >
> > >> >
> > >> >
> > >> >
> > >> >
> > >> >
> > >> > Joel Bernstein
> > >> > http://joelsolr.blogspot.com/
> > >> >
> > >> > On Mon, May 1, 2017 at 9:42 PM, Zheng Lin Edwin Yeo <
> > >> edwinye...@gmail.com>
> > >> > wrote:
> > >> >
> > >> >> Hi,
> > >> >>
> > >> >> Is it possible to join more than 2 collections using one of the
> > >> streaming
> > >> >> expressions (Eg: innerJoin)? If not, is there other ways we can do
> > it?
> > >> >>
> > >> >> Currently, I may need to join 3 or 4 collections together, and to
> > >> output
> > >> >> selected fields from all these collections together.
> > >> >>
> > >> >> I'm using Solr 6.4.2.
> > >> >>
> > >> >> Regards,
> > >> >> Edwin
> > >> >>
> > >> >
> > >> >
> > >>
> > >
> > >
> >
>

Reply via email to