Direction:
Implement a Search module to provide full-text search across resources (users, content, messages) with indexing and relevance ranking.
Key responsibilities:
- Choose and integrate a search engine (Elasticsearch, OpenSearch, or Postgres full-text) and define indexes/mappings.
- Background indexer to keep search index in sync with DB changes (create/update/delete hooks or change-data-capture).
- API endpoint: GET /search?q=:query&type=:resource with pagination and filters.
- Relevance tuning, highlighting snippets, and basic query sanitization to prevent injection.
- Tests for indexing, updates, and search result correctness.
Acceptance criteria:
- Search backend integrates and indexes primary resources; indexed data updates within acceptable lag (<30s for test env).
- Search API returns relevant results, supports pagination and simple filters.
- Unit/integration tests demonstrate indexing and search correctness for sample datasets.
- Documentation on setup, index rebuilding, and cost considerations.
Direction:
Implement a Search module to provide full-text search across resources (users, content, messages) with indexing and relevance ranking.
Key responsibilities:
Acceptance criteria: