The freq
(frequency) module provides result scoring based on the number of occurrences of the user’s query terms in the result text.
Results with more occurrences of the user search terms are considered more relevant.
The score produced by the freq
module for a result record is the sum of the frequencies of all user search terms in all fields (properties or dimensions in the search interface in question) that match a sufficient number of terms. The number of terms depends on the match mode, such as all terms in a MatchAll
query, a sufficient number of terms in a MatchPartial
query, and so on. Cross-field match records are assigned a score of zero. Total scores are capped at 1024; in other words, if the sum of frequencies of the user search terms in all matching fields is greater than or equal to 1024, the record gets a score of 1024 from the Freq module.
For example, suppose we have the following record:
{Title="test record", Abstract="this is a test", Text="one test this is"}
A MatchAll
search for “test this” causes freq
to assign a score of 4, because this and test occur a total of 4 times in the fields that match all search terms (Abstract
and Text
, in this case). The number of phrase occurrences (just one in the Text
field) does not matter, only the sum of the individual word occurrences. Also note that the occurrence of test in the Title
field does not contribute to the score, since that field did not match all of the terms.
A MatchAll
search for one record would hit this record, assuming that cross field matching was enabled. But the record would get a score of zero from Freq
, because no single field matches all of the terms. Freq
ignores matches due to query expansion (that is, such matches are given a rank of 0)