Search 2.0
EBS Lan search platform: hybrid BM25 and vector search, subject-area classifier, spell checker, video search. All ML components are CPU-only.
SOURCE: MANUAL README
Search 2.0 is a search platform built from several production services, responsible for searching the catalog of books, journals, tables of contents, and article pages of the EBS Lan (Russian academic e-library platform).
Components
- The main search API on a hybrid of BM25 and vector search, with a custom coefficient system and boosts by relevance and year of publication.
- Separate services for the subject-area classifier and author detector, a query vectorizer with caching, spell checking, and search over educational video.
An engineering constraint as a feature
All ML components are designed CPU-only — lazy model initialization, strict resource limits, no GPU dependency. Semantic search that fits the budget is part of the architecture too.
Alongside the platform runs the Books Keywords Generator — an internal production service that auto-generates keywords for books from their tables of contents: two-stage LLM generation (generation → validation by a separate prompt), dynamic context-length management, structured JSON logs in Elasticsearch.
Stack: Python · FastAPI · Elasticsearch · Redis · sentence-transformers · vLLM · MySQL · Nginx · Docker