Si el sitio no es muy grande / concurrido ,. una busqueda simple utilizando la sentencia LIKE de sql sera suficiente...
Supongamos que tu string de busqueda es
Código PHP:
$busqueda = 'mi primer busqueda';
Entonces lo que vas a intentar encontrar son los registros que contengan *mi*, *primer* y *busqueda*.
Aqui es donde entra la sentencia LIKE = '%texto%'
Código PHP:
$palabras = explode(" ", $busqueda); // dividimos el string en distintas palabras
$likes = array();
for ($i = 0; $i < count($palabras); $i++) { // hacemos un loop por las palabras y le metemos el LIKE a cada una.
$likes[] = "columna_a_buscar LIKE '%".$palabras[$i]."%'";
}
$query = "SELECT * FROM tabla WHERE ".implode(", ", $likes);
columna_a_buscar es la columna en la que estaras intentando encontrar las palabras en la base de datos.