As far as I know (and how i have been using it), the join can't do what you want. The structure of the query you could try (among others) is :
1. http://SOLR_ADDRESS/coreA/select?q=A&fq={!join ... fromCore=coreB}B 2. http://SOLR_ADDRESS/coreA/select?q=A AND _query_:"{!join<http://solr_address/coreA/select?q=A&fq=%7B!join> ... fromCore=coreB}B" Where: - A is a constraint over the documents of coreA (the documents returned by the query belong to this core). - B is a constraint over the documents in the coreB - fq is a constraint that have to satisfy documents in core A that depends on documents of B (query 1.) - The nested query in 2. is similar to the fq in query 1. If I've understood your requirement, you would like to get documents from coreA that satisfy a condition depending on documents of coreB, and those documents of coreB should also satisfy a condition from documents of coreC. This kind of transitivity (A<-B<-C) is the one I think can't be addressed by the join parser. In the structure of the former presented queries I can't guess how to include the constraint between coreB and coreC. In case you have three cores in action, the query you could execute (not tested but I can't see any issue) would look like this: 3. http://SOLR_ADDRESS/coreA/select?q=A&fq={!join<http://solr_address/coreA/select?q=A&fq=%7B!join> ... from=coreB}B&fq={!join... fromCore=coreC}C 4. http://SOLR_ADDRESS/coreA/select?q=A AND _query_:"{!join<http://solr_address/coreA/select?q=A&fq=%7B!join> ... fromCore=coreB}B" AND _query_:"{!join<http://solr_address/coreA/select?q=A&fq=%7B!join> ... fromCore=coreC}C" But in this case there is no a "transitive" restriction but independent conditions between coreA - coreB and coreA - coreC. Regards. On Wed, May 14, 2014 at 5:27 AM, Jay Potharaju <jspothar...@gmail.com>wrote: > Hi, > I am trying to join across multiple cores using query time join. Following > is my setup > 3 cores - Solr 4.7 > core1: 0.5 million documents > core2: 4 million documents and growing. This contains the child documents > for documents in core1. > core3: 2 million documents and growing. Contains records from all users. > > core2 contains documents that are accessible to each user based on their > permissions. The number of documents accessible to a user range from couple > of 1000s to 100,000. > > I would like to get results by combining all three cores. For each search I > get documents from core3 and then query core1 to get parent documents & > then core2 to get the appropriate child documents depending of user > permissions. > > I 'm referring to this link to join across cores > > http://stackoverflow.com/questions/12665797/is-solr-4-0-capable-of-using-join-for-multiple-core > > {!join from=fromField to=toField fromIndex=fromCoreName}fromQuery > > This is not working for me. Can anyone suggest why it is not working. Any > pointers on how to search across multiple cores. > > thanks > > > > J >