Ver Mensaje Individual
  #3 (permalink)  
Antiguo 02/04/2013, 11:04
Naica
 
Fecha de Ingreso: junio-2010
Mensajes: 49
Antigüedad: 13 años, 11 meses
Puntos: 3
Respuesta: Ordenar registros con instr()

Hola leonardo, muchas gracias por responder, explico mejor que es lo que intento hacer.

Actualmente el algoritmo que utilizo es ineficiente, ya que muestra mucha cantidad de resultados irrelevantes. Intento mejorarlo un poco de la siguiente manera:

Quiero ordenar a los resultados de acuerdo en donde se encuentre la palabra buscada (en este caso "Recetas de cocina"), si la palabra se encuentra más cerca del inicio del titulo, tendrá una mejor posición que un registro que contenga la palabra al inicio de la descripcion o keywords.

Por ejemplo si busco "Recetas de cocina" quisiera que los resultados se ordenen de la siguiente manera:

Cita:
Recetas de cocina y mucho más.
Todos sobre recetas de cocina.

2° Distintos países y sus recetas de cocina.
Las recetas de cocina de los distintos países.

3° Viajes por el mundo
Recetas de cocina de todo el mundo
Creo que de esta manera lograría una mejora en la entrega de los registros.

El problema de los resultados ineficientes radica en el IN BOOLEAN MODE, pero si lo elimino no se podrán buscar palabras de 3 letras o menos como "Sol", "Adn". No puedo editar el "ft_min_word_len" porque no tengo dinero como para contratar un VPS.

Muchas gracias por la ayuda, por ahora funciona bien, ¿para incluir la descripción también debería hacer algo así?:

Código MySQL:
Ver original
  1. ORDER BY SPriority DESC, IF(INSTR(uDR.webTitulo, 'recetas de cocina'), INSTR(uDR.webTitulo, 'recetas de cocina'), 65535) ASC, IF(INSTR(uDR.webDescripcion, 'recetas de cocina'), INSTR(uDR.webDescripcion, 'recetas de cocina'), 65535) ASC
__________________
Naica enciclopedia animal