Motor de búsqueda excesivamente simple: ¿simplificando los motores de búsqueda?
Pronunciación: "Oh-See"
¡Sólo para travesura! Tenía muchas ganas de aprender óxido y en ese momento estaba realmente interesado en cómo funcionaban los motores de búsqueda, ¡así que no había una mejor manera de alcanzar ambos objetivos que con este mismo proyecto!
Este repositorio es un monoreso formado por los componentes independientes que forman el motor de búsqueda de OSSE.
$ nix develop
Instale la carga y el tronco con su método preferido (como su administrador de paquetes favorito).
$ cargo run --bin crawler
$ cargo run --bin indexer
$ trunk serve frontend/index.html --open
Una vez que se ejecutan todos los componentes, puede navegar a 127.0.0.1:8080 en su navegador web favorito y comenzar a usar OSSE.
El motor de búsqueda de OSSE se separa en tres componentes independientes:
Este componente proporciona tanto la implementación del indexador del motor de búsqueda real como la API REST utilizada para buscar y agregar recursos indexados. Utiliza la web Actix para la API REST (que se ejecuta en el puerto 4444). Para la implementación de la estructura de datos del indexador real, actualmente utilizamos un índice inverso muy simple implementado con un hashmap, por lo que todos los recursos indexados se pierden actualmente cada vez que se reinicia el indexador.
Este componente es un simple rastreador recursivo que reenvía el HTML crudo rastreo al indexador. Utiliza ReqWest para obtener una lista predefinida de sitios web raíz y los analiza con raspador, enviando el contenido del sitio web al indexador y extrayendo todos sus enlaces, agregándolos a una cola de sitios web para que se arrastren. Este proceso es "recursivamente" repetido indefinidamente.
Este componente es una interfaz web simple para el indexador. Permite a los usuarios buscar y visualizar los resultados de una manera fácil de usar. Actualmente se construye usando Yew, lo que nos permite escribir el frontend en óxido y producir una web-UI con sede en WASM "Blazly Fast".
"Si tiene alguna idea o parche, ¡no dude en contribuir a OSSE!"
Este software tiene licencia bajo la cláusula BSD-2 © Baitinq.