Skip to content

Releases: jjacobsonn/in-memory-search-engine

v1.2.0

20 Feb 09:32

Choose a tag to compare

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

  1. Clone the repository:

    git clone https://github.com/jjacobsonn/in-memory-search-engine.git
    cd in-memory-search-engine
  2. Create and activate a virtual environment:

    python3 -m venv env
    source env/bin/activate
  3. Install dependencies:

    pip install -r requirements.txt

Usage

Launch the main application:

uvicorn api.app:app --host 0.0.0.0 --port 8000

For API access, visit http://127.0.0.1:8000/docs.

Docker users:

  1. Build the Docker image:

    docker build -t in-memory-search-engine .
  2. Run the Docker container:

    docker run -p 8000:8000 in-memory-search-engine

Using Docker Compose:

  1. Start the services:

    docker-compose up --build
  2. Stop the services:

    docker-compose down

Testing

Run the tests using pytest:

pytest --maxfail=1 --disable-warnings -v

Deployment

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

20 Feb 06:03

Choose a tag to compare

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

  1. Clone the repository.
  2. Run:
    make install
  3. 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

Future Improvements

  • Enhanced logging, monitoring, and authentication.
  • Performance benchmarks and stress testing.