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?
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With