Търсенето в действителната база данни е добре, докато не искате да добавите страхотни функции като горната. Според моя опит е най-добре да създадете специална таблица за търсене с ключови думи и идентификатори на страници/URL адреси/и т.н. След това попълвайте тази таблица на всеки n часа със съдържание. По време на тази популация можете да добавяте фрагменти за всеки документ за всяка ключова дума.
Като алтернатива бърз хак може да бъде:
<?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;
?>