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

Aumentar velocidad de mi buscador interno

Estas en el tema de Aumentar velocidad de mi buscador interno en el foro de Bases de Datos General en Foros del Web. Hola a todos, quisiera saber si se puede aumentar la velocidad de un buscador interno. Actualmente mi buscador interno tarda 3 segundos en encontrar una ...
  #1 (permalink)  
Antiguo 07/06/2010, 16:49
Avatar de xarmagedonx  
Fecha de Ingreso: marzo-2009
Mensajes: 360
Antigüedad: 15 años, 8 meses
Puntos: 29
Aumentar velocidad de mi buscador interno

Hola a todos, quisiera saber si se puede aumentar la velocidad de un buscador interno.

Actualmente mi buscador interno tarda 3 segundos en encontrar una web, quisiera reducir ese tiempo a 1 seg o menos.

Si se puede tambien, quisiera saber si hay algun tutorial o alguien que me pueda decir como agregar sinonimos, por ejemplo en mi buscador interno escribo "fauna", y hay una sección y aparecen los resultados de los sitios que contienen el la descripcion o el titulo la palabra "fauna", pero no aparecen los que tienen en vez de fauna las palabras "animales" o "enciclopedia animal", "mundo animal", etc.
Quisiera que estos también aparescan en los resultados.


Muchas gracias! les dejo el codigo php del buscador:
En los datos puse ****:
Código PHP:
<?php
// conectar al servidor
$server_link mysql_connect("****""****""****");
if(!
$server_link){
    die(
"Fall&oacute; la Conexi&oacute;n "mysql_error());
}
// seleccionamos la base de datos
$db_selected mysql_select_db("****"$server_link);
if(!
$db_selected){
    die(
"No se pudo seleccionar la Base de Datos "mysql_error());
}
// varificamos que el formulario halla sido enviado
if(isset($_GET['buscar']) && $_GET['buscar'] == 'Buscar'){
    
$frase addslashes($_GET['frase']);
    
// hacemos la consulta de busqueda
    
$sqlBuscar mysql_query("SELECT noticiaTitulo, noticiaNoticia, noticiaurl,
                              MATCH (noticiaTitulo, noticiaNoticia, noticiaurl)
                              AGAINST ('$frase' IN BOOLEAN MODE) AS coincidencias
                              FROM noticias
                              WHERE MATCH (noticiaTitulo, noticiaNoticia)
                              AGAINST ('$frase' IN BOOLEAN MODE)
                              ORDER BY coincidencias DESC"
$server_link)
                              or die(
mysql_error());                              
    
$totalRows mysql_num_rows($sqlBuscar);
     
// Enviamos un mensaje
    // indicando la cantidad de resultados ($totalRows)
    // para la frase busada ($frase)
    
if(!empty($totalRows)){
        echo 
stripslashes("<p>Se encontraron <strong>$totalRows</strong> resultados para <strong>$frase</strong></p>");        
        
// mostramos los resultados
        
while($row mysql_fetch_array($sqlBuscar)){
            echo 
"<strong><a href=$row[noticiaurl]>$row[noticiaTitulo]</a></strong>";
            echo 
"<p>".substr(strip_tags($row['noticiaNoticia']), 0255)."...</p>";
        }  
    }
    
// si se ha enviado vacio el formulario
    // mostramos un mensaje del tipo Oops...!
    
elseif(empty($_GET['frase'])){
        echo 
"Debe introducir una palabra o frase.";
    }
    
// si no hay resultados
    // otro mensaje del tipo Oops...!
    
elseif($totalRows == 0){
        echo 
stripslashes("No se encontraron resultados para <strong>$frase</strong>");
    }
}
?>
  #2 (permalink)  
Antiguo 07/06/2010, 17:00
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 10 meses
Puntos: 9
Respuesta: Aumentar velocidad de mi buscador interno

Bueno no se mucho de optimizar los querys pero supongo yo que debes estar usando Indices en los campos principales de búsqueda fulltext. Pero lo extraño es que se demora mucho, cuantos registros descarga por una búsqueda común? usas paginadores o limitadores? quizas lo que haga demorar son tus scripts de PHP.

Ahora por lo de sinónimos... lo veo algo complicado, en cambio si creas una tabla de tags (palabras clave) por noticias e incluyes en tu query el campo-relacion de tags lograrás el resultado que deseas.

Por ejemplo al crear tu noticia de "leones" o "arboles" o de "aves" , le agregas el tags: "fauna". Agregando el MATCH (tags) conseguiras que cuando escribas "fauna" te salgan las noticias relacionadas.

Suerte.
__________________
Quitenme la vida pero no la bebida.

Etiquetas: aumentar, interno, velocidad, buscadores
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 10:48.