I've been looking into this a bit further and am trying to figure out why the FQ isn't getting applied.
Can anyone point me to a good spot in the code to start looking at how FQ parameters are applied to query results in Solr4? Thanks, Mike On Thu, Jan 26, 2012 at 10:06 PM, Mike Hugo <m...@piragua.com> wrote: > I created issue https://issues.apache.org/jira/browse/SOLR-3062 for this > problem. I was able to track it down to something in this commit - > http://svn.apache.org/viewvc?view=revision&revision=1188624 (LUCENE-1536: > Filters can now be applied down-low, if their DocIdSet implements a new > bits() method, returning all documents in a random access way > ) - before that commit the join / fq functionality works as expected / > documented on the wiki page. After that commit it's broken. > > Any assistance is greatly appreciated! > > Thanks, > > Mike > > > On Thu, Jan 26, 2012 at 11:04 AM, Mike Hugo <m...@piragua.com> wrote: > >> Hello, >> >> I'm trying out the Solr JOIN query functionality on trunk. I have the >> latest checkout, revision #1236272 - I did the following steps to get the >> example up and running: >> >> cd solr >> ant example >> java -jar start.jar >> cd exampledocs >> java -jar post.jar *.xml >> >> Then I tried a few of the sample queries on the wiki page >> http://wiki.apache.org/solr/Join. In particular, this is one that I'm >> interest in >> >> Find all manufacturer docs named "belkin", then join them against >>> (product) docs and filter that list to only products with a price less than >>> 12 dollars >>> >>> http://localhost:8983/solr/select?q={!join+from=id+to=manu_id_s}compName_s:Belkin&fq=price:%5B%2A+TO+12%5D<http://localhost:8983/solr/select?q=%7B!join+from=id+to=manu_id_s%7DcompName_s:Belkin&fq=price:%5B%2A+TO+12%5D> >> >> >> However, when I run that query, I get two results, one with a price of >> 19.95 and another with a price of 11.5 Because of the filter query, I'm >> only expecting to see one result - the one with a price of 11.99. >> >> I was also able to replicate this in a unit test added to >> org.apache.solr.TestJoin: >> >> @Test >> public void testJoin_withFilterQuery() throws Exception { >> assertU(add(doc("id", "1","name", "john", "title", "Director", >> "dept_s","Engineering"))); >> assertU(add(doc("id", "2","name", "mark", "title", "VP", >> "dept_s","Marketing"))); >> assertU(add(doc("id", "3","name", "nancy", "title", "MTS", >> "dept_s","Sales"))); >> assertU(add(doc("id", "4","name", "dave", "title", "MTS", >> "dept_s","Support", "dept_s","Engineering"))); >> assertU(add(doc("id", "5","name", "tina", "title", "VP", >> "dept_s","Engineering"))); >> >> assertU(add(doc("id","10", "dept_id_s", "Engineering", "text","These >> guys develop stuff"))); >> assertU(add(doc("id","11", "dept_id_s", "Marketing", "text","These >> guys make you look good"))); >> assertU(add(doc("id","12", "dept_id_s", "Sales", "text","These guys >> sell stuff"))); >> assertU(add(doc("id","13", "dept_id_s", "Support", "text","These guys >> help customers"))); >> >> assertU(commit()); >> >> //*********** >> //This works as expected - the correct number of results are found >> //*********** >> // find people that develop stuff >> assertJQ(req("q","{!join from=dept_id_s to=dept_s}text:develop", >> "fl","id") >> >> ,"/response=={'numFound':3,'start':0,'docs':[{'id':'1'},{'id':'4'},{'id':'5'}]}" >> ); >> >> * //************ >> * // this fails - the response returned finds all three people - it >> should only find John* >> * // expected >> =/response=={"numFound":1,"start":0,"docs":[{"id":"1"}]}* >> * // response = {* >> * // "responseHeader":{* >> * // "status":0,* >> * // "QTime":4},* >> * // "response":{"numFound":3,"start":0,"docs":[* >> * // {* >> * // "id":"1"},* >> * // {* >> * // "id":"4"},* >> * // {* >> * // "id":"5"}]* >> * // }}* >> * //************ >> * // find people that develop stuff - but limit via filter query to a >> name of "john"* >> * assertJQ(req("q","{!join from=dept_id_s to=dept_s}text:develop", >> "fl","id", "fq", "name:john")* >> * ,"/response=={'numFound':1,'start':0,'docs':[{'id':'1'}]}"* >> * );* >> >> } >> >> >> Interestingly, I know this worked at some point. I had a snapshot build >> in my ivy cache from 10/2/2011 and it was working with that >> build maven_artifacts/org/apache/solr/ >> solr/4.0-SNAPSHOT/solr-4.0-20111002.161157-1.pom" >> >> >> Mike >> > >