A full-stack search engine project built with a C++ ranking/query core, Python indexing pipeline + backend API, and a TypeScript frontend.
This project implements a custom search pipeline:
- Preprocess and clean a large article dataset
- Build lexicon, forward index, inverted index, and barrels
- Serve search queries through a backend API
- Display results in a web frontend
- Use a C++ query processor for efficient ranking
- C++ (core query processing/ranking)
- Python (data pipeline + backend service)
- TypeScript + Vite (frontend)
Language composition (GitHub):
- C++: 96.3%
- Python: 2.5%
- TypeScript: 0.9%
- C: 0.2%
- JavaScript: 0.1%
src/→ indexing scripts + C++ query componentslexicon.pyforward_index.pyinverted_index.pybarrel.pyclean_data.pyProcessQuery.cpp
backend/→ backend API (app.py) and integration logicFrontend/→ frontend application (Vite + TypeScript)
Add the dataset file:
data.csv(Kaggle, ~190k+ articles)
Place it in the expected data directory used by your pipeline (e.g., engine_data/).
From the src/ directory, run scripts in this order:
lexicon.pyforward_index.pyinverted_index.pybarrel.pyclean_data.py
Run order is important because each step depends on outputs from previous steps.
From the backend/ directory:
python app.pyFrom the Frontend/ directory:
npm install
npm run dev- Keep file/folder names exactly as expected by scripts.
- Ensure Python dependencies and Node.js are installed.
- If query processing is configured to use a compiled C++ binary, make sure
ProcessQuery.exeexists or compile fromProcessQuery.cppfor your platform.
- Add one-command setup script for full pipeline bootstrap
- Add Docker support for frontend/backend
- Add CI checks and unit tests
- Add deployment instructions