Skip to content

Search Engine is a project that implements a basic search engine using Wikipedia pages. The core functionality is developed in C++, with additional components in Python and Cython. It builds a reverse index and uses the PageRank algorithm to rank pages, providing efficient search results based on keyword relevance and page importance.

Notifications You must be signed in to change notification settings

pedrobiqua/Search_Engine

Repository files navigation

Search Engine

English Version

Este projeto é um motor de busca simples que utiliza páginas da Wikipedia. Ele constrói um índice reverso para buscar palavras-chave e utiliza o algoritmo PageRank para ranquear as páginas com base na relevância e nos links entre elas.

Requisitos

Antes de compilar o projeto, certifique-se de que seu ambiente atenda aos seguintes requisitos:

  • CMake 3.10 ou superior
  • Google Test para testes unitários
  • Um compilador compatível com C++11 ou superior

Estrutura do Projeto

  • src/: Implementação principal do motor de busca, incluindo o índice reverso e o PageRank.
  • tests/: Testes unitários para verificar a funcionalidade do sistema.
  • CMakeLists.txt: Arquivo de configuração para construir o projeto com CMake.

Compilando o Projeto

Para compilar o projeto, siga os seguintes passos:

  1. Crie um diretório build e entre nele:

    mkdir build && cd build
  2. Execute o CMake para gerar os arquivos de compilação:

    cmake ..
  3. Compile o projeto utilizando make:

    make

Executando os Testes

Como este projeto é uma biblioteca, você pode rodar os testes unitários para verificar a funcionalidade.

  1. Após a compilação, no diretório build, execute o comando:

    ./tests/unit-tests/LibUnitTests

Isso executará os testes que cobrem o funcionamento da engine, indexação reversa e PageRank.

Funcionamento

  • Indexação Reversa: Mapeia palavras-chave para as páginas da Wikipedia onde aparecem.
  • PageRank: Algoritmo que atribui uma pontuação de relevância a cada página baseada nos links e na estrutura da Wikipedia.
  • Consulta: Busca páginas relacionadas a uma palavra-chave e ordena os resultados com base no PageRank.

Licença

Ainda estamos avaliando qual lincença será a lincença que será utilizada.

Here’s the README translated into English:


English Version

This project is a simple search engine that utilizes Wikipedia pages. It builds a reverse index for keyword searching and uses the PageRank algorithm to rank pages based on relevance and interlinking.

Requirements

Before compiling the project, make sure your environment meets the following requirements:

  • CMake 3.10 or higher
  • Google Test for unit testing
  • A compiler compatible with C++11 or higher

Project Structure

  • src/: Main implementation of the search engine, including the reverse index and PageRank.
  • tests/: Unit tests to verify the functionality of the system.
  • CMakeLists.txt: Configuration file for building the project with CMake.

Building the Project

To compile the project, follow these steps:

  1. Create a build directory and navigate into it:

    mkdir build && cd build
  2. Run CMake to generate the build files:

    cmake ..
  3. Compile the project using make:

    make

Running Tests

Since this project is a library, you can run the unit tests to verify its functionality.

  1. After building, in the build directory, execute:

    ./tests/unit-tests/LibUnitTests

This will run the tests covering the search engine functionality, reverse indexing, and PageRank.

How It Works

  • Reverse Indexing: Maps keywords to the Wikipedia pages in which they appear.
  • PageRank: An algorithm that assigns a relevance score to each page based on links and the structure of Wikipedia.
  • Querying: Searches for pages related to a keyword and ranks the results based on PageRank.

License


About

Search Engine is a project that implements a basic search engine using Wikipedia pages. The core functionality is developed in C++, with additional components in Python and Cython. It builds a reverse index and uses the PageRank algorithm to rank pages, providing efficient search results based on keyword relevance and page importance.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published