Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Orden de coincidencia

Estas en el tema de Orden de coincidencia en el foro de Mysql en Foros del Web. Buen día y gracias por detenerse a leer este tema, En MySql cuando se utiliza LIKE existe una función que ordena los resultados por coincidencia. ...
  #1 (permalink)  
Antiguo 29/11/2011, 10:26
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Orden de coincidencia

Buen día y gracias por detenerse a leer este tema,

En MySql cuando se utiliza LIKE existe una función que ordena los resultados por coincidencia.

(no me acuerdo como se llama...!)

Osea me trae primero los que mas se parezcan a la palabra o dato que se le envío, pero por mas y mas que busco en el oráculo (google) no encuentro cual es.

El maneja como un "ranking" internamente que ordena los resultados por relevancia a la palabra o dato buscado.

Alguien por el amor de dios me dice como se llama esa función de MySql para poder investigar acerca de ella?

Gracias
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #2 (permalink)  
Antiguo 29/11/2011, 19:03
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Orden de coincidencia

Puede a que te estés refiriendo a "expresiones regulares". Es todo un tema y lleva algo de tiempo dominarlo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 30/11/2011, 07:05
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Orden de coincidencia

No no no amigo, yo alguna vez leí (hace rato ya) de como crear un buscador.

En este tutorial (que no encuentro) explicaban algo en la consulta a MySql para ordenar los resultados por la mayor coincidencia, osea que MySql colocaba en los primeros lugares los registros que cumplian al 100% con la palabra o frase buscada.

Por ejemplo:

Yo busco "ord" en la base de datos entonces la consulta seria SELECT * FROM tabla WHERE campo LIKE %ord% ORDER BY ?

Cuando se ordena por ese ? que no se que es... MySql internamente coloca de primero los registros que coinciden exactamente con "ord" después los que tengan mas semejanza como "orde" después los registros con menos semejanza como "orden".

Pero por mas que busco no encuentro de nuevo ese tutorial.

Espero haberme hecho entender.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #4 (permalink)  
Antiguo 30/11/2011, 07:34
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Orden de coincidencia

Bueno lo encontré :) resulta que la cosa no es con LIKE que pena con ustedes, la cosa es con MATCH y AGAINST, miren un ejemplo:

Código MySQL:
Ver original
  1. MATCH(title, body) AGAINST ('PHP') AS score
  2. FROM articles
  3. WHERE MATCH(title, body) AGAINST('PHP')

Esta puntuación es generalmente algo como .9823475 o 0,124874, pero siempre mayores
cero. Así se muestran los resultados de MAYOR coincidencia primero.

Gracias a todos.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #5 (permalink)  
Antiguo 30/11/2011, 07:49
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Orden de coincidencia

Era mi primera opción, pero tu hacías mucho hincapié en que era con LIKE.
Sobre MATCH() AGAINST() ten en cuenta que sólo funciona con indices FLLTEXT y los FULTEXT sólo son operativos con tablas MyISAM. Con las InnoDB no los puedes definir.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 30/11/2011, 15:19
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Orden de coincidencia

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Era mi primera opción, pero tu hacías mucho hincapié en que era con LIKE.
Sobre MATCH() AGAINST() ten en cuenta que sólo funciona con indices FLLTEXT y los FULTEXT sólo son operativos con tablas MyISAM. Con las InnoDB no los puedes definir.
Sip con eso no tengo problema, porque mi tabla etiquetas es MyISAM x) pero el resto de tablas son InnoDB

Gracias por la info...!
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???

Etiquetas: orden, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:34.