Zoeken in de eigenlijke database is prima totdat je hippe functies zoals hierboven wilt toevoegen. In mijn ervaring is het het beste om een speciale zoektabel te maken, met trefwoorden en pagina-ID's/URL's/etc. Vul deze tabel vervolgens elke n uur met inhoud. Tijdens deze populatie kunt u fragmenten toevoegen voor elk document voor elk zoekwoord.
Als alternatief kan een snelle hack zijn:
<?php
$text = 'This is an example text page with content. It could be red, green or blue.';
$keyword = 'red';
$size = 5; // size of snippet either side of keyword
$snippet = '...'.substr($text, strpos($text, $keyword) - $size, strpos($text, $keyword) + sizeof($keyword) + $size).'...';
$snippet = str_replace($keyword, '<strong>'.$keyword.'</strong>', $snippet);
echo $snippet;
?>