This project provides a search engine built on Elasticsearch for indexing and searching documents with advanced features like fuzzy search, weighted fields, and automatic enrichment of metadata such as transliteration tags.
-
Elasticsearch Integration
- Indexing and searching documents in real-time.
- Automatic creation of transliteration tags, synonyms, and normalized keywords when indexing.
-
Search API
- Perform fuzzy searches with relevance scoring.
- Field-level boosting for prioritized search results:
title.key→ Highest weight (100)synonyms,transliterationTags,keywords,tags→ Medium to high weightcontent,description→ Lower weight
-
RabbitMQ Integration
- Documents can also be indexed via RabbitMQ events, allowing asynchronous processing and scalability.
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/documents |
Index a new document |
GET |
/api/search |
Search across documents |