Overview of Blaze
mainBlaze is a lightweight, hackable full-text search engine written in Go. It is designed for keyword-based search using an inverted index, rather than semantic vector search. It is ideal for developers who want to understand or implement features like BM25 ranking, boolean queries, and proximity search without the complexity of a hyperscale engine.
Key Capabilities:
- Search: Term search, phrase search, boolean queries (AND, OR, NOT), and proximity ranking.
- Ranking: BM25 relevance scoring (industry standard) and proximity-based scoring.
- Text Processing: Tokenization, Snowball (Porter2) stemming for English, stopword filtering, and case normalization.
- Data Structures: Uses Skip Lists for $O(\log n)$ operations and Roaring Bitmaps for fast boolean query execution.
Note on Semantic Search: Blaze is focused on keyword-based search. For vector embeddings and semantic retrieval, use Comet. For production-grade, battle-tested full-text search, consider Bleve.