Creando un buscador sin base de datos

Ya sé lo que estaréis pensando: cómo vas a hacer un buscador sin base de datos? Me explico. El otro día en la oficina, surgió una necesidad: dada una web estática (en HTML), necesitaban hacer un buscador dada una palabra clave.

Os cuenta a la solución a la que he llegado primero teóricamente, y luego, a la práctica.

Básicamente, el sistema recorre los directorios que hay dentro de nuestro sitio web, y guarda el nombre de los archivos .html (en este caso, pero se podría aplicar a cualquier tipo de archivo).

Posteriormente, se recorre este array y se va creando un fichero JSON que contiene, la URL del archivo y el sourcecode del mismo ( y que es dónde acabaremos buscando el texto).

Finalmente, se busca el texto introducido y se devuelve una página con los resultados del mismo.

Os dejo aquí el código completo para que lo podáis ver (se irá actualizando probablemente):

A nivel general, además, podéis configurar:

dirs: array con los directorios a recorrer, dentro de nuestro directorio.

fileExtension: la extensión que tendrán los ficheros a tener en cuenta (por defecto html, pero podría ser la que quisiéramos).

insertURL: el fichero PHP que se ejecutará la primera vez para crear el JSON del contenido.

jsonFile: el nombre del fichero JSON que se creará con el contenido a buscar de nuestra web.

minLength: el número mínimo de caracteres a buscar, devolviendo en caso contrario un error.

Cómo resultado de todo esto, podéis ver que:

  1. es una búsqueda casi instantánea (porque buscamos en el JSON).
  2. no necesitáis base de datos.
  3. he mentido un poco puesto que para crear el JSON utilizo un PHP con un file_put_contents.

 

 

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s