Skip to content

Migrate Search to PostgreSQL Full-Text Search #47

Description

@Techhackontime999

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

  • Search results are more relevant (ranked by weight)
  • Fuzzy matching handles typos
  • Search performance is equivalent or better
  • Search vectors are updated on content changes

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    advancedAdvanced levelbackendBackend/API workenhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions