Per il grassetto credo basti che una volta estratto il testo tu faccia
Codice PHP:
$testo preg_replace('#'.$parola_cercata.'#si''[b]'.$parola_cercata.'[/b]'$testo); 
per l'estrarre solo 5 parole prima e 5 dopo.. ci penso n'attimo e ti faccio sapere