[en] 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.

[es] 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.