Skip to main content

Search Engine is a project that implements a basic search engine using C++, Python, and Cython. It builds a reverse index and ranks pages with the PageRank algorithm based on keyword relevance and page importance.

Project description

Search Engine

Contributor Covenant CMake Build and Test Pages Build Deployment Poetry

Logo da biblioteca


Search Engine is a simple, efficient engine that builds a reverse index for keyword searching and ranks results using the PageRank algorithm.

📋 Requirements

Before compiling the project, ensure your environment meets the following requirements:

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

📂 Project Structure

The project is organized as follows:

  • src/: Main implementation of the search engine, including reverse indexing and the PageRank algorithm.
  • 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

Run unit tests to ensure the correctness of the system.

  1. After building the project, navigate to the build directory and execute:

    ./tests/unit-tests/LibUnitTests
    

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


🚀 Running Examples

The first step is building the project, for this to run:

poetry install
poetry build

After building it, run this command to see the library working:

poetry run python Examples/graph_example.py

⚙️ How It Works

  • Reverse Indexing: Maps keywords to the documents where they appear.
  • PageRank: An algorithm that assigns a relevance score to each document based on its links and structure.
  • Querying: Searches for documents related to a keyword and ranks them according to their PageRank score.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.


Contributors

We welcome all contributions to this project! Please make sure to follow the guidelines outlined in the CONTRIBUTING.md file.
Thanks to all contributors

Contributors

Made with contrib.rocks.


Keep learning,
Pedro;)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

search_engine_cpp-0.1.0.tar.gz (16.6 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

search_engine_cpp-0.1.0-cp313-cp313-manylinux_2_39_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.39+ x86-64

search_engine_cpp-0.1.0-cp312-cp312-manylinux_2_39_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.39+ x86-64

File details

Details for the file search_engine_cpp-0.1.0.tar.gz.

File metadata

  • Download URL: search_engine_cpp-0.1.0.tar.gz
  • Upload date:
  • Size: 16.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.12.3 Linux/6.8.0-51-generic

File hashes

Hashes for search_engine_cpp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e930be11c4fb5dd7c6117be004f99287e4d70f6a7ba9a8649c7c859ef4df5a17
MD5 5e7a2b70cdf955926616c0963e40dae9
BLAKE2b-256 4b526d5d560996d0de1429a905b86adca2d043142df072424f38818977772ce6

See more details on using hashes here.

File details

Details for the file search_engine_cpp-0.1.0-cp313-cp313-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for search_engine_cpp-0.1.0-cp313-cp313-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 02e3d69ee123d15e5a955cdb2faaa10c5c626220a2b6d2ec5fb7dc1a47623814
MD5 4c326691349502c5d1039cef707a8f91
BLAKE2b-256 32c4224f5c56af7489c9366477a313870fdc3ff7cdee800813b61b2d6c841d98

See more details on using hashes here.

File details

Details for the file search_engine_cpp-0.1.0-cp312-cp312-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for search_engine_cpp-0.1.0-cp312-cp312-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 0163637102ae15416fc033a199da08781471fabcf064266ab03459df579d25d6
MD5 2a59daf74582080c0a21b947ea99e1bc
BLAKE2b-256 5eeca4e332896b710979a1b5d758d4228906e7e11e80a363a569302ab8ccb1e7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page