Implementación de un buscador web auto alojado
Author
Darias Sánchez, DanielDate
2020Abstract
El objetivo de este trabajo ha sido la investigación acerca de la problemática,
soluciones existentes y tecnologías implicadas en el funcionamiento de los motores de
búsqueda en internet, así como la creación de una herramienta prototipo capaz de
funcionar como solución alternativa y auto alojada a las ya existentes.
Además, el trabajo ha sido ideado y desarrollado cumpliendo con dos condiciones
adicionales establecida por el alumno. En primer lugar, el prototipo debe funcionar
satisfactoriamente en computadores con gran escasez de recursos, ya que idealmente,
será ejecutado en “computadoras de bolsillo” y bajo consumo como la Raspberry pi. Por
otro lado, enfocando este proyecto como una oportunidad para enfrentar problemas
nuevos y establecer relaciones entre conocimientos que, si bien han sido adquiridos en el
marco de lo estudiado en el Grado de Ingeniería Informática, quizá no se haya
profundizado en las conexiones existentes entre ellos. Además, se propone la elaboración
del prototipo en su conjunto, intentando evitar el uso de librerías de alto nivel capaces de
lidiar con grandes porciones de esta labor. Así, se prefiere el desarrollo de soluciones
propias potencialmente subóptimas en pro del posible aumento de conocimiento por
parte del alumno que conlleva el deber enfrentar la variedad de dificultades encontradas
individualmente.
El resultado del trabajo es el de una herramienta funcional y capaz escrita en C++, con
una arquitectura modular, asíncrona y fuertemente centrada en el aprovechamiento de
las capacidades multihilo de los procesadores actuales, dependiente únicamente de las
librerías libcurl y leveldb y que reutiliza satisfactoriamente otras herramientas creadas
por el alumno durante el transcurso de sus estudios en este grado. Este ha sido
licenciado, cumpliéndose las restricciones de las dependencias, como software libre bajo
una licencia GPL-v3. The goal of this project has been the investigation towards the problematic, solutions
and implied technologies on the inner mechanics of search engines, as well as the
creation of a protoype tool capable of working as an alternative and self hosted solution
from the existent ones.
Besides, the work has been created and developed under two additional conditions
established by the student. First, the prototype must work succesfully on low-end
computers, since its main goal is to be executed on "pocket pcs" like the Raspberry Pi.
Secondly, I wanted to gain more knowledge about some areas that were studied during
the career but I felt I had poorly conected relations between them. Additionally, I wanted
do the whole elaboration of the prototype, avoiding the use of high level libraries. I
prefered to come up with my own solutions, which may be suboptimal, with the goal of
the increase of my knowledge occured by solving the different problems and difficulties by
myself.
The result is a functional and capable tool, written in C++, with a modular architecture,
asyncronous and strongly focused on the exploitation of the multihtreaded capacities of
the current CPUs, that depends only on the libcurl & leveldb libraries, and that succesfully
recycle other tools created by the student during his career. The project has been licensed
as libre software under a GPL-v3 license.