B-SERS: Books Search Engine and Recommendation System. This system combines the functionalities of a search engine and a recommendation system to effectively address the challenges of finding and suggesting books. By leveraging advanced algorithms and indexing techniques, B-SERS allows users to perform detailed searches across a large database of books.
The search engine uses the BM25 Okapi method for ranking, ensuring highly relevant search results. The recommendation system employs a multi-features weighting content-based recommendation method, specifically applied to the title and description of the books.
The dataset used for B-SERS comes from Kaggle. To complete the book details, I utilized ISBN data to scrape book descriptions from Amazon. In about a week, I successfully scraped descriptions for 79,436 books using a server that ran 24 hours a day.
- Web Application: JQuery, Tailwind CSS, Axios, Webpack
- Experiment: Poetry, Numpy, Pandas, Scikit-learn, rank_bm25
These instructions will guide you through installing the project on your local machine for testing purposes. There are two methods of installation, with docker or manually using Linux and macOS commands.
This project requires Python 3.10.
Clone this repository
git clone https://github.com/kevin-wijaya/Books-Search-Engine-and-Recommendation-System.git
Change the directory to the cloned repository
cd Books-Search-Engine-and-Recommendation-System/
Run docker compose
docker compose up --build
Open your web browser and go to the following URL
# http://localhost:5500
Clone this repository
git clone https://github.com/kevin-wijaya/Books-Search-Engine-and-Recommendation-System.git
Change the directory to the cloned repository and then navigate to the server
directory
cd Books-Search-Engine-and-Recommendation-System/server/
Initialize the python environment to ensure isolation
python -m venv .venv
Activate the python environment
source .venv/bin/activate
Install prerequisite python packages
pip install --no-cache-dir -r requirements.txt
Run the uvicorn server
uvicorn run:app --reload --port=8001 --host=0.0.0.0
Open new terminal and change the directory to the cloned repository and then navigate to the client
directory
# replace the /path/to/your/ with the path where your cloned repository is located
cd /path/to/your/Books-Search-Engine-and-Recommendation-System/client/
Change the directory to the production folder
cd .dist/
Run the Python HTTP server
python -m http.server 5500
Open your web browser and go to the following URL
# http://localhost:5500
To use this web application is easy, follow these 3 steps:
- Insert Text: Enter your text into the search field.
- Search: Press Enter or click the search icon to process the query. The system will then provide recommendations.
- Adjust Weight Parameters: Optionally, adjust the weights for the title or description parameters to see different results.
Here are some screenshots of the application:
- Kevin Wijaya