High-performance Wikipedia search API serving 4.8M articles with millisecond response times.
- Lightning-fast search: Optimized FTS queries with sub-millisecond exact match
- Dual search strategy: Exact title matching and Full-text search with FTS5
- Result caching: LRU cache for ultra-fast repeated queries
- Async logging: Non-blocking performance monitoring
- Production-ready: Gunicorn WSGI server with 8 workers
- Framework: Flask
- Database: SQLite with FTS5 full-text search
- WSGI Server: Gunicorn with multi-worker configuration
- Caching: Python functools.lru_cache for query results
GET /api/search?q=query&limit=10
Parameters:
- q (required): Search query string
- limit (optional): Number of results (default: 10, max: 20)
- Install dependencies: pip install -r requirements.txt
- Ensure database is accessible
- Run with Gunicorn: gunicorn --config gunicorn.conf.py wsgi:application
- Workers: 8
- Bind: 0.0.0.0:80
- Database: /var/www/wikipedia-api/wikipedia_production.db (7GB, 4.8M articles)
- Exact match: <1ms
- FTS search: 20-50ms
- Cached queries: <1ms
- Memory usage: ~70MB per worker
- wsgi.py - WSGI entry point
- wikipedia_api_lightning.py - Main application
- async_worker.py - Async logging worker
- gunicorn.conf.py - Gunicorn configuration
- requirements.txt - Python dependencies