Dipende tutto dal tipo di ricerca che vuoi effettuare. Una ricerca complessa (quella di google per esempio) richiede un complicatissimo algoritmo, mentre per una ricerca più semplice, che ad esempio cerca solamente la presenza di keyword nel testo, puoi procedere in questo modo: Memorizzi tutte le keyword (i termini di ricerca) in un array. Dopodichè, per ogni file esaminato crei una variabile con valore 0. Poi nel contenuto del file cerchi ciascuna keyword, aggiungendo alla variabile appena creata il numero di volte che la keyword è stata trovata (puoi usare str_replace). A questo punto inserisci i nomi dei file in un array in base al numero di keyword trovate. In questo modo puoi visualizzarli in ordine, in base a quanto corrispondono ai termini di ricerca.
Codice PHP:
<?php
//la lista dei file in cui cercare
$listaDeiFile = array("file1.txt", "file2.txt", "file3.txt");
//I termini della ricerca
$keywords = array("termini", "di", "ricerca");
//Array in cui memorizzare i file in base alle keyword trovate
$ricorrenzePerFile = array();
//Scorro tutti i file
foreach($listaDeiFile as $file)
{
//Leggo il contenuto del file
$contenuto = file_get_contents($file);
$ricorrenze = 0;
//Scorro le keyword
foreach($keywords as $key)
{
$trovata = 0;
//Ricavo il numero di volte che la keyword è presente nel file
str_replace($key, $key, $contenuto, $trovata);
//Aggiungo al totale di keyword trovata
$ricorrenze += $trovata;
}
//Memorizzo le keyword trovate nel file in un array
$ricorrenzePerFile[$file] = $ricorrenze;
}
//Ordino l'array in ordine di keyword trovate
sort($ricorrenzePerFile);
//Scrivo i risultati della ricerca nell'ordine dell'array
$num = 1;
foreach($ricorrenzePerFile as $file=>$record)
{
echo "Risultato numero {$num}: {$file}, con {$record} parole chiave trovate.";
$num++;
}
Non ho provato il codice, ma dovrebbe andare. Spero di esserti stato utile!

EDIT: Ops, troppo tardi.