in src/search/SearchTermMatcher.php [120:156]
protected static function matchFullTerm(
string $content,
string $term,
): ?float {
if (Str\length($term) === 0) {
return null;
}
if ($term === $content) {
return SearchScores::EXACT_MATCH_SCORE;
}
if (Str\contains($term, ' ')) {
return null;
}
$multi = 1.0;
if (Str\length($term) < 3 || Str\length($content) < 3) {
$multi = SearchScores::SHORT_MATCH_MULTIPLIER;
}
if (Str\starts_with($content, $term)) {
return SearchScores::PREFIX_MATCH_SCORE * $multi;
}
if (Str\ends_with($content, $term)) {
return SearchScores::SUFFIX_MATCH_SCORE * $multi;
}
if (C\contains(Str\split($content, ' '), $term)) {
return SearchScores::WORD_MATCH_SCORE * $multi;
}
if (Str\contains($content, $term)) {
return SearchScores::SUBSTRING_MATCH_SCORE * $multi;
}
return null;
}