THE CHALLENGE
What had to remain reliable.
The same engineering term can appear in filenames, folder paths, and the body of dozens of PDF, DOCX, or spreadsheet files. A useful result must highlight the right context while tolerating spelling variation and mixed Russian and English terminology.
THE SOLUTION
How the system was designed.
Document extraction is isolated from retrieval. Apache Tika normalizes source files, OpenSearch applies dedicated RU/EN analyzers and domain synonyms, fields receive explicit weights, fuzzy matching handles typos, and long highlighted fragments explain why each result was selected.
ARCHITECTURE
The main system boundaries and data flow.
[ Telegram Bot / WebApp ] ---> [ Application Service ] ---> [ PostgreSQL ]
| |
| +----> [ YooKassa webhooks ]
|
+----> [ Apache Tika ] ---> [ OpenSearch RU/EN index ]
|
[ weighted search + highlights ]
OUTCOMES
What the architecture enables.
01Faster access to a precise standard fragment
02Search behavior tuned for bilingual engineering terminology
03Payment and access state isolated from retrieval
04Containerized deployment with health checks and persistent volumes
STACKPythonAiogram 3OpenSearchApache TikaPostgreSQLYooKassa APIDocker Compose