: I thought about that but my concern/question was how. If I used the pow : function then I'm still boosting the bad categories by a small : amount..alternatively I could multiply by a negative number but does that : work as expected?
I'm not sure i understand your concern: negative powers would give you values less then 1, positive powers would give you values greater then 1, and then you'd use those values as multiplicitive boosts -- so the values less then 1 would penalize the scores of existing matching docs in the categories the user dislikes. Oh wait ... i see, in your original email (and in my subsequent suggested tweak to use pow()) you were talking about sum()ing up these 3 category boosts (and i cut/pasted sum() in my example as well) ... yeah, using multiplcation there would make more sense if you wanted to do the "negative prefrences" as well, because then then score of any matching doc will be reduced if it matches on an "undesired" category -- and the amount it will be reduced will be determined by how strongly it matches on that category (ie: the base score returned by the nested query() func) and "how negative" the undesired prefrence value (ie: the pow() exponent) is qq=... q={!boost b=$b v=$qq} b=prod(pow(query($cat1,cat1z)),pow(query($cat2,cat2z)),pow(query($cat3,cat3z)) cat1=...action... cat1z=1.48 cat2=...comedy... cat2z=1.33 cat3=...kids... cat3z=-1.7 -Hoss