Foros del Web » Programando para Internet » PHP »

Problema con buscador interno

Estas en el tema de Problema con buscador interno en el foro de PHP en Foros del Web. tengo un problema con el buscador de mi web, si busco una palabra de 3 letras o menos no me la busca, dice que no ...
  #1 (permalink)  
Antiguo 15/03/2011, 14:53
Avatar de xarmagedonx  
Fecha de Ingreso: marzo-2009
Mensajes: 360
Antigüedad: 15 años, 1 mes
Puntos: 29
Problema con buscador interno

tengo un problema con el buscador de mi web, si busco una palabra de 3 letras o menos no me la busca, dice que no se encontró nada, ¿alguien sabe como arreglarlo?.

les dejo el código:

Código:
<?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']), 0, 255)."...</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 15/03/2011, 15:00
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola, xarmagedonx

Muevo tu tema al foro de PHP desde Web general.

Saludos,
  #3 (permalink)  
Antiguo 15/03/2011, 21:51
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema con buscador interno

Por default MySQL no indexa palabras de tres caracteres o menos, si realmente te interesa que pueda funcionar asi (aunque no parece ser tan util realmente), puedes probar a cambiar el parametro ft_min_word_len, san google puede ayudarte a encontrar como aqui: http://www.google.com.mx/search?hl=e...t_min_word_len

Si estas en un servidor gratuito o compartido, dudo que puedas realizar ese cambio.
__________________
- León, Guanajuato
- GV-Foto
  #4 (permalink)  
Antiguo 16/03/2011, 11:20
Avatar de xarmagedonx  
Fecha de Ingreso: marzo-2009
Mensajes: 360
Antigüedad: 15 años, 1 mes
Puntos: 29
Respuesta: Problema con buscador interno

Cita:
Iniciado por Triby Ver Mensaje
Por default MySQL no indexa palabras de tres caracteres o menos, si realmente te interesa que pueda funcionar asi (aunque no parece ser tan util realmente), puedes probar a cambiar el parametro ft_min_word_len, san google puede ayudarte a encontrar como aqui: http://www.google.com.mx/search?hl=e...t_min_word_len

Si estas en un servidor gratuito o compartido, dudo que puedas realizar ese cambio.
ok, gracias, en mi caso es muy util, porque hay palabras como por ejemplo, adn, arn, rer, rel, que no aparecen en mi buscador y son muy importantes

Etiquetas: interno, 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 00:32.