: Chris, I was trying the below method for sorting the faceted buckets but : am seeing that the function query query($q) applies only to the score : from “q” parameter. My solr request has a combination of q, “bq” and : “bf” and it looks like the function query query($q) is calculating the : scores only on q and not on the aggregate score of q, bq and bf
right. ok -- yeah, that makes sense. The thing to udnerstand is that when you use request params as "variables" in functions like that, the function doesn't know the context of your request -- "query($q)" doesn't know/treat the "q" param special, it could just as easily be "query($make_up_a_param_name_thats_in_your_request)" awhen when the query() function goes and evalutes the param you specify, it's not going to know that you have a defType of e/dismax that affects "q" param when the main query is executed -- it just parses it as a lucene query. so what you need is something like "query({!dismax bf=$bf bq=$bq v=$q})" ... i think that should work, or if not then use "query($facet_sort)" where facet_sort is a new param you add that contains "{!dismax bf=$bf bq=$bq v=$q}" alternatively, you could change your "q" param to be very explicit about the query you want, w/o depending on defType, and use a custom param name for the original query string provided by the user -- that's what i frequently do... ie: q={!dismax bf=$bf bq=$bq v=$qq}&qq=dogs and cats ...and then the "query($q)" i suggested before should work as is. does that make sense? -Hoss http://www.lucidworks.com/