Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/03/2012, 15:01
Avatar de xarmagedonx
xarmagedonx
 
Fecha de Ingreso: marzo-2009
Mensajes: 360
Antigüedad: 15 años, 1 mes
Puntos: 29
Pregunta Asignar prioridad a una búsqueda

Hola a todos!!, estoy intentando asignar una prioridad a una búsqueda y que esta pueda sumarse con otra, y luego ordenar los resultados.

Por ejemplo, hago la búsqueda de una frase, si aparece en el título serían 4 puntos, si aparece en la desripción 2 y si aparece en la url 1 punto. Luego los sumo, y ordeno por cantidad de puntos:

1º el que tenga 7 puntos
2º el que tenga 6 puntos
3º etc....

Como puedo lograr esto??, actualmente yo busco de esta manera:

Código MySQL:
Ver original
  1. mysql_query("SELECT distinct artTitulo, artDescripcion, palabrasArticulo  
  2.  
  3. from
  4.  
  5. ((select s1.artTitulo, s1.artDescripcion, s1.palabrasArticulo, 1 as priority from articulos s1 WHERE MATCH (artTitulo) AGAINST ('$frase'))
  6.  
  7. union
  8.  
  9. (select s2.artTitulo, s2.artDescripcion, s2.palabrasArticulo, 2 as priority from articulos s2 WHERE MATCH (artDescripcion) AGAINST ('$frase'))
  10.  
  11. union
  12.  
  13. (select s3.artTitulo, s3.artDescripcion, s3.palabrasArticulo, 3 as priority from articulos s3 WHERE MATCH (palabrasArticulo) AGAINST ('$frase'))) uDR
  14.  
  15. order by uDR.priority DESC ", $server_link)
  16.                               or die(mysql_error());

Pero los resultados no son muy buenos y muchas veces los usuarios no encuentran lo que buscan.

Muchas gracias y espero que puedan ayudarme