Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to correctly boost results in Solr Dismax query

I have managed to build an index in Solr which I can search on keyword, produce facets, query facets etc. This is all working great. I have implemented my search using a dismax query so it searches predetermined fields.

However, my results are coming back sorted by score which appears to be calculated by keyword relevancy only. I would like to adjust the score where fields have pre-determined values. I think I can do this with boost query and boost functions but the documentation here:

http://wiki.apache.org/solr/DisMaxRequestHandler#head-6862070cf279d9a09bdab971309135c7aea22fb3

Is not particularly helpful. I tried adding adding a bq argument to my search:

&bq=media:DVD^2

(yes, this is an index of films!) but I find when I start adding more and more:

&bq=media:DVD^2&bq=media:BLU-RAY^1.5

I find the negative results - e.g. films that are DVD but are not BLU-RAY get negatively affected in their score. In the end it all seems to even out and my score is as it was before i started boosting.

I must be doing this wrong and I wonder whether "boost function" comes in somewhere. Any ideas on how to correctly use boost?

like image 937
cubabit Avatar asked Feb 28 '23 22:02

cubabit


1 Answers

This is a little late and it looks like you probably already have what you are looking for, but...

If you are curious about boost functions (which, judging by your desired results, I think you should be) you should check out the bf argument instead of the bq argument.

Try setting the bf argument to

media:DVD^2 media:BLU-RAY^1.5

and I think that could achieve what you want.

like image 123
JMTyler Avatar answered Mar 07 '23 23:03

JMTyler