entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

3votos

buscador en mi web

Estoy desarrollando una web principalmente html (quería usar una plantilla) con alguna página php suelta (para un registro de usuarios, una sección privada). En concreto es una web relacionado con el mundo de la medicina en la que de vez en cuando se subirán (subiré) una serie de artículos médicos. Me piden incluir un buscador en la web para localizar palabras, títulos y artículos. ¿ Me dais alguna idea para implementar el buscador ?

Muchas gracias

0voto

FelipeMedel comentado

hola @gonzalss para lo que necesitas, podrías dar un poco más de información, por ejemplo: decir si las publicaciones están en una base de datos, o si solo se agregaran en el código, por otro lado, si están en una base de datos, con una simple consulta podrías cargar la publicación o la URL de la página en donde se encuentre dicha publicación(es), y con redireccionar, con eso solucionas ese problema, aquí te dejo, quizás una solución o posible idea para que soluciones tu pregunta... Link: Buscador en mi web

0voto

gonzalss comentado

Muchas gracias por la respuesta Felipe.Comentarte que las publicaciones al ser pocas van directamente en la web - en el código-

2 Respuestas

2votos

FelipeMedel Puntos7400

con la información que has dado, aquí te dejo un código que sirve para buscar palabras en el documento, podrías mejorarlo y personalizarlo a tus necesidades.

<!DOCTYPE html>
<html>
<head>
    <title>Buscardor de Palabras</title>
    <script language="JavaScript">
        var TRange=null

        function busca (str) {
         if (parseInt(navigator.appVersion)<4) return;
         var strFound;
         if (window.find) {

          strFound=self.find(str);
          if (!strFound) {
           strFound=self.find(str,0,1)
           while (self.find(str,0,1)) continue
          }
         }
         else if (navigator.appName.indexOf("Microsoft")!=-1) {

            if (TRange!=null) {
           TRange.collapse(false)
           strFound=TRange.findText(str)
           if (strFound) TRange.select()
          }
          if (TRange==null || strFound==0) {
           TRange=self.document.body.createTextRange()
           strFound=TRange.findText(str)
           if (strFound) TRange.select()
          }
         }
         else if (navigator.appName=="Opera") {
          alert ("Opera no soporta busqueda")
          return;
         }
         if (!strFound) alert ("Cadena '"+str+"' no fue Encontrada")
         return;
        }
    </script>
</head>
    <body>
        <input name="t1" value="" placeholder="Texto a Buscar" /> 
        <input onclick="busca(document.all.t1.value)" type="button" value="Buscar" />
        <p>
            Importante: El script y el formulario los puedes poner en cualquier parte de tu web, pero recomendamos que incluyas el script en el <head> </head> de tu página, aunque no es absolutamente necesario, como ves en este blog en el cual no copie el script en el <head> pero si lo puse de primero en la entrada y funciona correctamente.
            <br>
            Como puedes ver la caja de texto tiene el name="t1", por lo cual el botón tiene en el evento OnClick la función busca en la cual envía el Value del objeto t1.
        </p>
    </body>
</html>

resultado...

buscador1

si la palabra se encuentra se selecciona

buscador2

en caso de que no se encuentre, arroja una alerta...
buscador3

2votos

Leonardo-Tadei Puntos227320

Hola @gonzalss,

si el contenido de la web van a ser páginas HTML sueltas, la única manera de implementar un buscador es leer todas las páginas del sitio y recorrer el texto para encontrar las concordancias.

Esto a medida que el sitio crece requiere de optimizaciones, porque es costoso, computacionalmente hablando, abrir y leer decenas de archivos para ver qué tienen adentro.

Una optimización para hacer es armar un índice de palabras en una DB por cada archivo revisado, de forma tal de buscar en ese índice en vez de buscar en los archivos...

Implica un cambio grande en lo que estás haciendo, pero lo que se hace habitualmente es crear un mínimo gestor de contenidos para tener los textos en la DB, y que el buscador busque en la DB, lo que hace todo mucho más simple y rápido.

Saludos cordiales!

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta