Foros del Web » Programando para Internet » PHP »

Resultados de Búsquedas con Full-text de MySQL

Estas en el tema de Resultados de Búsquedas con Full-text de MySQL en el foro de PHP en Foros del Web. Hola leyendo este artículo http://www.blasten.com/mostrar.php/a...os/mysql/19003 he querido implementarlo en mi base de datos y ha sido muy efectivo en los resultados de las búsquedas. para ...
  #1 (permalink)  
Antiguo 28/10/2004, 12:09
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 14 años, 5 meses
Puntos: 0
Resultados de Búsquedas con Full-text de MySQL

Hola leyendo este artículo http://www.blasten.com/mostrar.php/a...os/mysql/19003

he querido implementarlo en mi base de datos y ha sido muy efectivo en los resultados de las búsquedas.

para ello utilicé la sentencia SQL

Código PHP:
$sql = ("SELECT * FROM barrido_prensa WHERE MATCH (contenido) AGAINST ('$contenido') ORDER BY fecha DESC"); 
Pero aún quisiera mejorar los resultados ya sea de 100% de parecido a 90%, 80%, 70%, 60%, 50%, etc.

Quisiera saber si hay alguna clase en php que clasifique los resultados con el porcentaje de probabilidad (%) de que la palabra o frase buscada sea igual a la solicitada por el usuario.

Si conocen alguna o tienen una idea porfavor posteen aqui

__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.
  #2 (permalink)  
Antiguo 28/10/2004, 14:17
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cuando ejecutas una busqueda tipo "Full text" puedes obtener un campo más ("columna") como resultado de tus consultas .. que es justamente ese ratio de coincidencias que arrojó tu consulta .. por ende podrías ordenar por ese campo y obtener tus resultados ordenados por el indice de apariciones de cadena(s) a buscar.

Concretamente .. creando un alias para los MATCH() ..

Código PHP:
$sql = ("SELECT * FROM barrido_prensa WHERE MATCH (contenido) AGAINST ('$contenido') as relevancia ORDER BY relevancia,fecha DESC"); 
Así tendrás un nuevo "$row['relevancia']" para mostrar u ordenar como en el ejemplo.

Te recomiendo este tutorial al respecto más completo que el que mencionas:
http://www.mysql-hispano.org/page.php?id=15

Un saludo,
  #3 (permalink)  
Antiguo 28/10/2004, 15:42
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 14 años, 5 meses
Puntos: 0
ok

Ok Cluster me ha servido, ya he creado la consulta con la relevancia, aunque en el PhpMyadmin funciona perfectamente, pero en el paginator de jpinedo no la ejecuta porque desconoce la nueva columna creada "relevancia" y da el siguiente error: Unknown column 'relevancia' in 'order clause', pero ya me puse en contacto con jpinedo para mejorar esa parte.

__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.
  #4 (permalink)  
Antiguo 29/10/2004, 15:43
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Ok andinistas... ya te respondí por email.
Y para los interesados... el Paginator utiliza expresiones regulares para modificar la consulta y resolver el conteo de registros desde MySql con la función COUNT().
Pues para algunas consultas complejas, o que tienen otras funciones o la cláusula GROUP BY.... este conteo de registros no funciona correctamente.

Para esos casos estoy implementando un conteo alternativo de registros utilizando mysql_num_rows()... que puede consumir más recursos, pero que funcionará en todos los casos. Justamente por el tema de consumno de recursos es que sólo debe utilizarse este conteo alternativo cuando el conteo normal falle.

Ya lo debo estar publicando hoy o mañana en la web oficial del paginator.

Saludos
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 01:02.