Hola elvaleehdj, como estas?
Te comento... yo el motor de búsqueda interno lo hago con MATCH y AGAINST. Luego la consulta la ordeno por las coincidencias que tuvo.
Te dejo un simple ejemplo:
Código PHP:
Ver original<?php
$sexo = $_POST['sexo'];
if($sexo != "")
{
$result = mysql_query("SELECT nombre, apellido MATCH(campoEnElQueQuierasBuscar) AGAINST('$palabrasClaves') AS coincidencia FROM miTabla WHERE MATCH(campoEnElQueQuierasBuscar) AGAINST ('$palabrasClaves') and sexo = $sexo ORDER BY coincidencia DESC"); }
else
{
$result = mysql_query("SELECT nombre, apellido MATCH(campoEnElQueQuierasBuscar) AGAINST('$palabrasClaves') AS coincidencia FROM miTabla WHERE MATCH(campoEnElQueQuierasBuscar) AGAINST ('$palabrasClaves') ORDER BY coincidencia DESC"); }
?>
Yo lo hago así y la verdad anda muy bien.
PD: Ten en cuenta que no es lo mismo buscar "colores lindos" que "color lindo". Por este motivo te recomiendo que antes de enviar los datos por POST crees una función ( te recomiendo en javascript para no atarear al servidor ) para pluralizar y des-pluralizar las palabras claves que el usuario quiere buscar.
Un saludo :)