un motore di ricerca è tutto fuor che semplice...
Il sistema + pratico, per non avere colli di bottiglia, è avere il sito indicizzato...

Questo vuol dire, andarti a prendere il sito, pagina per pagina (con uno script ovviamente automatico), e leggerla, andando a mettere in un db tutte le occorrenze di ogni singola parola con il nome del file in cui compare e la riga.
Una volta indicizzato, quando fai la ricerca, non andrai a leggere di nuovo tutti i file, ma leggi dal db, e mostri in quali pagine quella parola è presente, come fà google, per capirci.. e sarà l'utente a decidere quale pagina aprire....
Salvando anche la riga dove la parola è presente, ti potrai stampare, assieme al link della pagina, i 50 caratteri prima e i 50 dopo la parola, così da permettere al lettore, di capire se la parola è nel giusto contesto...

esempio:

se cerco:

mina

e in uscita avrò:

- Pagina giochi (titolo della pagina che manda a giochi.html)
- Pagina giochi (titolo della pagina che manda a giochi2.html)

Non capisco un cazzo...

Se invece ho:

- Pagina giochi (titolo della pagina che manda a giochi.html)
..nel campo minato dovrai mettere trovare la casella che contiene la mina rossa...

- Pagina giochi (titolo della pagina che manda a giochi2.html)
...in half life 2 l'uso corretto di una mina consiste nel raccoglierla con la ggun-...

capito il meccanismo ti basta costruire il tutto...

Se poi vuoi cercare mina, anche all'interno di altre parole, come minato, quando farai la select dal db, nel where userai il LIKE....