in src/GuidesIndex.php [45:86]
public static function search(string $term): vec<SearchResult> {
$results = vec[];
$index = self::getIndex();
foreach ($index as $product => $value) {
foreach ($value as $guide => $entry) {
foreach ($entry as $page => $filepath) {
$name = Guides::normalizeName($product, $guide, $page);
$score = SearchTermMatcher::matchTerm($name, $term);
if ($score !== null) {
if ($page === 'introduction') {
$score *= SearchScores::GUIDE_INTRODUCTION_MULTIPLIER;
}
$results[] = new GuidePageSearchResult(
$product,
$guide,
$page,
$score,
);
continue;
}
$content = \file_get_contents(BuildPaths::GUIDES_HTML.'/'.$filepath);
if ($content === false) {
continue;
}
$content = \html_entity_decode(\strip_tags($content));
$score = SearchTermMatcher::matchTerm($content, $term);
if ($score === null) {
continue;
}
$results[] = new GuidePageSearchResult(
$product,
$guide,
$page,
$score * SearchScores::CONTENT_MATCH_MULTIPLIER,
);
}
}
}
return $results;
}