Cílem bylo implementovat Faginův Top-K algoritmus na vyhledání nejlepších K výsledků v databázi produktů. Uživatel si pomocí webového rozhrazní zvolí, podle jakých parametrů chce produkty řadit. Výstupem je tabulka seřazených výsledků, změřený čas běhu algoritmu a počet, kolik bylo provedeno požadavků na databázi.
Projekt obsahuje jak Faginův Top-K, tak i naivní algoritmus sekvenčním průchodem. Je tak možné vyzkoušet rozdílné přístupy a porovnat jejich efektivitu.
Pro spuštění je potřeba mít nainstalovaný Python.
- Aplikace využívá další podpůrné balíčky, proto je vhodné si nejdříve vytvořit virtuální prostředí, například do složky
~/.venv
příkazem:
python3 -m venv .venv
- A aktivovat jej
.venv\Scripts\Activate.ps1 (PowerShell)
.venv\Scripts\activate.bat (CMD)
source .venv/bin/activate (Bash)
- Nainstalovat balíčky (závislosti)
pip install -r requirements.txt
Samotnou aplikaci lze spustit příkazem
python3 main.py
Pro vygenerování většího množství testovacích dat lze využít příkaz
python3 data/generate.py 100000
Script vygeneruje 100000 řádků dat do souboru data/test.random.csv
Webové rozhraní poté běží na adrese http://127.0.0.1:7860/