Yes. Boosting adjusts an existing score. That original score can vary,
e.g. depending upon how many search terms there are.

If you use additive boosting, when you add a boost to a search with one
term, (e.g. between 0 and 1) you get a different effect compared to when
you add the same boost to a search with four terms (e.g. between 0 and
4). If, however, you used multiplicative boosting, the impact of the
boosts would be the same.

If, for example, you want to add a recency boost, say with recip, where
the boost value is between 0 and 1, then use score*(1+boost). This way,
a boost of 0 has no effect on the score, whereas a boost of 1 doubles
the score. If you use plain multiplicative here, a boost of 0 wipes out
the score entirely, which can have nasty effects (it has, at least, for
me).

Upayavira

On Thu, 17 Mar 2016, at 06:58 PM, Walter Underwood wrote:
> Think about using popularity as a boost. If one movie has a million
> rentals and one has a hundred rentals, there is no additive formula that
> balances that with text relevance. Even with log(popularity), it doesn’t
> work.
> 
> With multiplicative boost, we only care about the difference between the
> one rented one million time and the one rented 800 thousand times (think
> about the Twilight movies at Netflix). But it also distinguishes between
> the one rented 100 times and the one rented 80 times.
> 
> wunder
> Walter Underwood
> wun...@wunderwood.org
> http://observer.wunderwood.org/  (my blog)
> 
> 
> > On Mar 17, 2016, at 11:29 AM, jimi.hulleg...@svensktnaringsliv.se wrote:
> > 
> > Hi,
> > 
> > After reading a bit on various sites, and especially the blog post 
> > "Comparing boost methods in Solr", it seems that the preferred boosting 
> > type is the multiplicative one, over the additive one. But I can't really 
> > get my head around *why* that is so, since in most boosting problems I can 
> > think of, it seems that an additive boost would suit better.
> > 
> > For example, in our project we want to boost documents depending on various 
> > factors, but in essence they can be summarized as:
> > 
> > - Regular edismax logic, like qf=title^2 mainText^1
> > - Multiple custom document fields, with weights specified at query time
> > 
> > So, first of, the custom fields... It became obvious to me quite quickly 
> > that multiplicative logic here would totally ruin the purpose of the 
> > weights, since something like "(f1 *  w1) * (f2 * w2)" is the same as "(f1 
> > *  w2) * (f2 * w1)". So, I ended up using additive boost here.
> > 
> > Then we have the combination of the edismax boost, and my custom boost. As 
> > far as I understand it, when using the boost field with edismax, this 
> > combination is always performed using multiplicative logic. But the same 
> > problem exists here as it did with my custom fields. Because if I boost the 
> > aggregated result of the custom fields using some weight, it doesn't affect 
> > the order of the documents because that weight influences the edismax boost 
> > just as much. What I want is to have the weight only influence my custom 
> > boost value, so that I can control how much (or little) the final score 
> > should be effected by the custom boost.
> > 
> > So, in both cases I find myself wanting to use the additive boost. But 
> > surely I must be missing something, right? Am I thinking backwards or 
> > something?
> > 
> > I don't use any out-of-the-box example indexes, so I can provide you with a 
> > working URL that shows exactly what I am doing. But in essence my query 
> > looks like this:
> > 
> > - q=test
> > - defType=edismax
> > - qf=title^2&qf=mainText1^1
> > - 
> > totalRanking=div(sum(product(random1,1),product(random2,1.5),product(random3,2),product(random4,2.5),product(random5,3)),5)
> > - weightedTotalRanking=product($totalRanking,1.5)
> > - bf=$weightedTotalRanking
> > - fl=*,score,[explain style=text],$weightedTotalRanking
> > 
> > random1 to random5 are document fields of type double, with random values 
> > between 0.0 and 1.0.
> > 
> > With this setup, I can change the overall importance of my custom boosting 
> > using the factor in weightedTotalRanking (1.5 above). But that is only 
> > because bf is additive. If I switch to the boost parameter, I can no longer 
> > influence the order of the documents using this factor, no matter how high 
> > a value I choose.
> > 
> > Am I looking at the this the wrong way? Is there a much better approach to 
> > achieve what I want?
> > 
> > Regards
> > /Jimi
> 

Reply via email to