Para colocar em negrito é fácil, é só dar um str_replace no que vier do banco, mandando substituir a palavra por ela mesma em negrito... Quanto a pegar um pedaço antes e um depois, ai complica, pois você tem várias coisas pra levar em conta, por exemplo, na mesma frase por existir mais de uma ocorrência da palavra chave, etc...