: > Deja-Vu...
: 
: > 
http://www.lucidimagination.com/search/document/3551f130b6772799/excluding_docs_from_results_based_on_matched_field
: 
: > -Hoss
: 
: Thanks for the answer, the problem is that the query like this:
: 
: q=foo&defType=dismax&qf=title&bq={!dismax qf='title desc' v=$q}
: 
: causes exception in Solr - "infinite recursion detected".

Hmmm, yeah ... that makes sense given the way local params work (although 
i'm amazed Solr actually detects it instead of just crashing -- the local 
param parsing is smarter then i thought!)

Assuming this is what i think it is, it's because the "inner" dismax query 
is looking for a "bq" param, which is leading to infinite recursion 
because there is no bq local param -- if you specify bf='' inside the 
{!dismax} that error should go away (but you may still not get the results 
you expect if you also have other top level dismax params like pf, etc...

http://www.lucidimagination.com/search/document/a60e420f5c3d8365/searching_for_terms_on_specific_fields#a60e420f5c3d8365

You should be able to bypass the kind of thing entirely by making *both* 
of the dismax queries nested queries of some other top level query (so 
they can't possibly inherit params from eachother) instead of using bq ... 

        qq = foo
        q = +_query_:"$main" _query_:"$extra"
        main = {!dismax ... v=$qq}
        extra = {!dismax ... v=$qq}




-Hoss

Reply via email to