This content has been marked as final. Show 4 replies
1. You can "stack" multipliers, so if you want to multipy by 50 you can use (expression)*5*101 person found this helpful
2. Using a query template and SCORE DATATYPE="FLOAT" will allow for more fine-grained scores. It is still limited to 100.
Perhaps something like:
<query> <textquery> dog*9.3*3.5 OR cat*1.7*2.5 <score datatype="FLOAT" algorithm="COUNT"/> </query>
SCORE DATATYPE="FLOAT" can only be used with query templates? Is there any reason behind limiting the maximum score to 100?
Yes, you have to use a template to specify a SCORE DATATYPE.1 person found this helpful
I don't know why the score is limited to 100. There are good reasons to limit it to something, but I guess 100 is somewhat arbitrary. Probably simply because it has always been that, and some applications may rely on it being that so changing it would break backward compatibility.
For example a common technique where you want to filter by some criterion, but not have that criterion affect the score, is to do:
(dog AND cat) AND (yes WITHIN published)*10*10
Because AND returns the lower of the two sides, we can be sure that "yes WITHIN published" will saturate at 100 and NOT affect the score of (dog AND cat).
If we suddenly changed things such that (dog and cat) could score 200, then it's possible that the right hand side of this expression would be lower than the left, and hence the score would be based on the filter criteria (yes WITHIN published) rather than the main search.
Thanks for the help! I think using query templates will require some major changes to our search engine, but we already thought about doing this. Yet another reason ;-)