Releases: jjacobsonn/in-memory-search-engine
Releases · jjacobsonn/in-memory-search-engine
v1.2.0
Release Notes v1.2.0
Overview
- High-performance in-memory search engine with trie-based autocomplete and fuzzy search (Levenshtein distance).
- API built with FastAPI and Uvicorn.
Features
- Autocomplete Search: Fast prefix-based search using a Trie data structure.
- Fuzzy Search: Typo-tolerant search using Levenshtein distance.
- Detailed Metadata: Execution time, algorithm used, and more.
API Endpoints
- Autocomplete:
/autocomplete?prefix=... - Fuzzy Search:
/fuzzy?query=...&max_distance=...
Installation
-
Clone the repository:
git clone https://github.com/jjacobsonn/in-memory-search-engine.git cd in-memory-search-engine -
Create and activate a virtual environment:
python3 -m venv env source env/bin/activate -
Install dependencies:
pip install -r requirements.txt
Usage
Launch the main application:
uvicorn api.app:app --host 0.0.0.0 --port 8000For API access, visit http://127.0.0.1:8000/docs.
Docker users:
-
Build the Docker image:
docker build -t in-memory-search-engine . -
Run the Docker container:
docker run -p 8000:8000 in-memory-search-engine
Using Docker Compose:
-
Start the services:
docker-compose up --build
-
Stop the services:
docker-compose down
Testing
Run the tests using pytest:
pytest --maxfail=1 --disable-warnings -vDeployment
Follow the Deployment Guide for staging/production deployment and monitoring.
Future Improvements
- Enhanced logging, monitoring, and authentication.
- Performance benchmarks and stress testing.
Additional Updates in v1.2.0
- Improved Documentation: Comprehensive guides for installation, running, testing, and deployment.
- Enhanced CI/CD Pipeline: Automated testing and deployment using GitHub Actions.
- Accessibility Improvements: Updated UI for better accessibility and user experience.
- Expanded Test Coverage: Added unit and integration tests for all core functionalities.
- Docker Support: Dockerfile and Docker Compose configurations for easy containerization and deployment.
- Live Demo: Check out the live demo: In-Memory Search Engine
Assets
# Release Notes v1.0.0
Overview
- High-performance in-memory search engine with trie-based autocomplete and fuzzy search (Levenshtein distance).
- API built with FastAPI and uvicorn.
Features
- Autocomplete: Fast prefix lookup via trie.
- Fuzzy Search: Spell-correction using an accelerated Levenshtein algorithm.
- API Endpoints:
/autocomplete?prefix=.../fuzzy?query=...&max_distance=...
Installation
- Clone the repository.
- Run:
make install
- Test with:
make test
Usage
- Launch the main application:
make run
- For API access, visit http://127.0.0.1:8000/docs
- Docker users:
make docker-build make docker-run
Deployment
- Follow docs/deployment.md for staging/production deployment and monitoring.
Future Improvements
- Enhanced logging, monitoring, and authentication.
- Performance benchmarks and stress testing.