Hi all, I am using solr 9.3 (with VuFind). I want to use JOIN query to get a list of books written by certain authors (selected by facets). First, I do two preparatory steps to try this without JOIN and have some data to test.
Step 1: Query authority DB (combining 4 facets) to get list of authors. Query: /solr/authority/select?fl=authority_str&fq=full_text_str_mv%3A"Matrika narozených"&fq=full_text_str_mv%3A"Matrika zemřelých"&fq=gender_facet%3A"žena"&fq=occupation_facet%3A"básníci"&indent=true&q.op=OR&q=*%3A*&useParams=&wt=json For convenience, I copy the contents of fq boxes: occupation_facet:"básníci" gender_facet:"žena" full_text_str_mv:"Matrika narozených" full_text_str_mv:"Matrika zemřelých" Response: "responseHeader":{ "status":0, "QTime":0, "params":{ "q":"*:*", "indent":"true", "fl":"authority_str", "q.op":"OR", "fq":["occupation_facet:\"básníci\"","gender_facet:\"žena\"","full_text_str_mv:\"Matrika narozených\"","full_text_str_mv:\"Matrika zemřelých\""], "wt":"json", "useParams":"", "_":"1741770044834" } }, "response":{ "numFound":6, "start":0, "numFoundExact":true, "docs":[{ "authority_str":"jk01021170" },{ "authority_str":"jk01110447" },{ "authority_str":"jk01021755" },{ "authority_str":"jk01080703" },{ "authority_str":"jk01100238" },{ "authority_str":"jk01152591" }] } } Step 2: Query biblio DB (using list of authors we got in step 1) to get list of books. Query: /solr/biblio/select?indent=true&q.op=OR&q=authority_search_str_mv%3A(jk01021170 jk01021755 jk01080703 jk01100238 jk01110447 jk01152591)&useParams= Response: { "responseHeader":{ "status":0, "QTime":1, "params":{ "q":"authority_search_str_mv:(jk01021170 jk01021755 jk01080703 jk01100238 jk01110447 jk01152591)", "indent":"true", "fl":"fullrecord", "q.op":"OR", "rows":"10000", "useParams":"", "_":"1741770215216" } }, "response":{ "numFound":1498, "start":0, "numFoundExact":true, "docs":[...] } By grepping result for "jk01021170|jk01021755|jk01080703|jk01100238|jk01110447|jk01152591", I checked that data contain the results I wanted. Step 3: Use join query to combine steps 1 + 2. Query: solr/biblio/select?fq={!join fromIndex%3D'authority' from%3D'authority_str' to%3D'authority_search_str_mv' v%3D'full_text_str_mv%3A"Matrika narozených"'}&fq={!join fromIndex%3D'authority' from%3D'authority_str' to%3D'authority_search_str_mv' v%3D'full_text_str_mv%3A"Matrika zemřelých"'}&fq={!join fromIndex%3D'authority' from%3D'authority_str' to%3D'authority_search_str_mv' v%3D'gender_facet%3A"žena"'}&fq={!join fromIndex%3D'authority' from%3D'authority_str' to%3D'authority_search_str_mv' v%3D'occupation_facet%3A"básníci"'}&indent=true&q.op=OR&q=*%3A*&useParams= For convenience, I copy the contents of fq boxes: {!join fromIndex='authority' from='authority_str' to='authority_search_str_mv' v='occupation_facet:"básníci"'} {!join fromIndex='authority' from='authority_str' to='authority_search_str_mv' v='gender_facet:"žena"'} {!join fromIndex='authority' from='authority_str' to='authority_search_str_mv' v='full_text_str_mv:"Matrika narozených"'} {!join fromIndex='authority' from='authority_str' to='authority_search_str_mv' v='full_text_str_mv:"Matrika zemřelých"'} Response: { "responseHeader":{ "status":0, "QTime":0, "params":{ "q":"*:*", "indent":"true", "q.op":"OR", "fq":["{!join fromIndex='authority' from='authority_str' to='authority_search_str_mv' v='occupation_facet:\"básníci\"'}","{!join fromIndex='authority' from='authority_str' to='authority_search_str_mv' v='gender_facet:\"žena\"'}","{!join fromIndex='authority' from='authority_str' to='authority_search_str_mv' v='full_text_str_mv:\"Matrika narozených\"'}","{!join fromIndex='authority' from='authority_str' to='authority_search_str_mv' v='full_text_str_mv:\"Matrika zemřelých\"'}"], "rows":"0", "useParams":"", "_":"1741770215216" } }, "response":{ "numFound":1563, "start":0, "numFoundExact":true, "docs":[...] } } By grepping result for "jk01021170|jk01021755|jk01080703|jk01100238|jk01110447|jk01152591", I checked that data contain the 1498 results I wanted, but it also contains 65 unwanted results. (What is perhaps interesting that only 2 of the wanted results are among the first 10 results.) What should I do get rid of these unwanted results? Thanks for any help, Josef