This way, the longer words in the query gain a higher priority than shorter ones, that are likely not as important. We may, however, need to apply a formula (e.g. exponential, quadratic, polynomial) to the letter count in order to normalise the resulting rankings to even things out though.
The number of occurrences of a word in a page should be multiplied by the number of letters in said word. Example:
history rabbits
(title_matches * title_multiplier) + (tag_matches * tag_multiplier) + (page_matches * page_multiplier)
(word_score * letter_count) + (word_score2 * letter_count2) + ...
This way, the longer words in the query gain a higher priority than shorter ones, that are likely not as important. We may, however, need to apply a formula (e.g. exponential, quadratic, polynomial) to the letter count in order to normalise the resulting rankings to even things out though.