Description
Replace the current Redis-based search with PostgreSQL full-text search for better accuracy, relevance ranking, and support for complex queries.
Requirements
- Implement PostgreSQL SearchVector and SearchRank for all searchable models
- Add SearchVectorField to User, Post, and Job models
- Support weighted ranking (name > headline > skills > experience)
- Implement search result highlighting with SearchHeadline
- Add trigram similarity for fuzzy matching (typo tolerance)
- Migrate existing search cache to query-based search
- Add database indexes for search performance
- Benchmark against current implementation
Files to Create/Modify
- linkup/core/search_engine.py - New PostgreSQL search engine
- linkup/core/views.py - Update search view to use new engine
- linkup/users/models.py - Add search_vector field
- linkup/feed/models.py - Add search_vector field
- linkup/jobs/models.py - Add search_vector field
- linkup/scripts/update_search_vectors.py - Management command to rebuild search vectors
- linkup/professional_network/settings/base.py - Add pg_trgm extension
Acceptance Criteria
Description
Replace the current Redis-based search with PostgreSQL full-text search for better accuracy, relevance ranking, and support for complex queries.
Requirements
Files to Create/Modify
Acceptance Criteria