: Boost Query (bq) accepts lucene queries. E.g. bq=price:[50 TO 100]^100 : boost and bf parameters accept Function queries, e.g. boost=log(popularity)
while these statements are both true, they don't tell the full story. for example you can also specify a function as a query using the appropriate parser: bq={!func}log(popularity) or turn any query into a function that produces values according to the query score: boost=query({!lucene v='price:[50 TO 100]^100'}) The fundemental difference between bq & boost is: "bq" causes a an additional 'boost query' clause to be *added* to your original query "boost" causes the scores for each doc from your original to be *multiplied* by the results of the specified function evaluated against the same doc. (in both cases "original query" refers to your "q" param parsed with respects to qf, pf, etc...) So a query like this... q={!edismax}bar & qf=foo & bq=x:y ...is roughly equivilent to: q={!lucene}+foo:bar x:y While a query like this... q={!edismax}bar & qf=foo & boost=query({!lucene v='x:y'}) ...is roughly equivilent to... q={!func}prod(query({!edismax qf='foo' v='bar'}), query({!lucene v='x:y'})) because of how they affect final scores, the 'boost' param is almost always what you really want and is really nothing more then shorthand for wrapping your entire query in a "BoostQParser" ... https://cwiki.apache.org/confluence/display/solr/Other+Parsers#OtherParsers-BoostQueryParser -Hoss http://www.lucidworks.com/