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

Reply via email to