Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/02/2011, 12:09
T_O_N_N_Y
 
Fecha de Ingreso: octubre-2006
Ubicación: Quart de Poblet, Valencia
Mensajes: 767
Antigüedad: 17 años, 6 meses
Puntos: 8
Busqueda Un buscador mejor...

Buenas tardes!

Estoy desarrollando un buscador en Mysql.

El buscador lo tengo implementado de la siguiente forma (sin contar el autocompletar)

Si se introduce SOLO UNA palabra, usaremos la query:

Cita:
SELECT id, name, cartel FROM carteles WHERE name LIKE '%$busqueda%' ORDER BY id ASC LIMIT 5
En cambio, si la búsqueda a realizar contiene MÁS DE UNA palabra, se usa la query:
Cita:
SELECT id, name, cartel , MATCH (name) AGAINST ('$busqueda') AS score FROM carteles WHERE MATCH (name) AGAINST ('$busqueda') ORDER BY score DESC LIMIT 5
Habiendo alterado la tabla con
Cita:
ALTER TABLE carteles ADD FULLTEXT(name);
Bien, mi problema es que las búsquedas con el MATCH-AGAINST si introduces "menos capa" no te encontraría "menos capacidad", cosa que sí que sería encontrado usando sólo la sentencia LIKE.

¿Es realmente mucho mejor realizar las búsquedas con MATCH-AGAINS que con LIKE?

Mi problema viene porque lo estoy implementando para que funcione con autocompletar (live search), y por tanto, no me sirve o no sé cómo optimizarlo para hacerlo funcionar.

Un saludo y espero que se entienda mi problema (sino comentad y explico con más detalle)