it might make sense to test on the recent versions of Solr. On Sun, Apr 8, 2018 at 8:21 PM, manuj singh <s.manuj...@gmail.com> wrote:
> Hi all, > I am trying to debug a problem which i am facing and need some help. > > I have a solr query which does join on 2 different cores. so lets say my > first core has following 3 docs > > { "id":"1", "m_id":"lebron", "some_info":"29" } > > { "id":"2", "m_id":"Wade", "matches_win":"29" } > > { "id":"3", "m_id":"lebron", "some_info":"1234" } > > my second core has the following docs > > { "m_id": "lebron", "team": "miami" } > > { "m_id": "Wade", "team": "miami" } > > so now we made an update to doc with lebron and changed the team to > "clevelend". So the new docs in core 2 looks like this. > > { "m_id": "lebron", "team": "clevelend" } > > { "m_id": "Wade", "team": "miami" } > > now i am trying to join these 2 and finding the docs form core1 for team > miami. > > my query looks like this > > fq=+{!join from=m_id to=m_id fromIndex=core2 force=true}team:miami > > I am expecting it to return doc with id=2 but what i am getting is document > 1 and 2. > > I am not able to figure out what is the problem. Is the query incorrect ? > or is there some issue in join. > > *Couple of observations.* > > 1.if i remove the + from the filter query it works as expected. so the > following query works > > fq={!join from=m_id to=m_id fromIndex=core2 force=true}team:miami > > I am not sure how the Must clause affecting the query. > > *2.* Also if you look the original query is not returning document > 3.(however its returning document 1 which has the same m_id). Now the only > difference between doc 1 and doc3 is that doc1 was created when "lebron" > was part of team: miami. and doc3 was created when the team got updated to > "cleveland". So the join is working fine for the new docs in core1 but not > for the old docs. > > 3.If i use q instead of fq the query returns results as expected. > > q=+{!join from=m_id to=m_id fromIndex=core2 force=true}team:miami > > and > > q={!join from=m_id to=m_id fromIndex=core2 force=true}team:miami > > Both of the above works. > > I am sure i am missing something how internally join works. I am trying to > understand why fq has a different behavior then q with the Must(+) clause. > > I am using solr 4.10. > > > > Thanks > > Manuj > -- Sincerely yours Mikhail Khludnev