Skip to content

Add Full-Text Search for Puzzles #75

Description

@Mkalbani

Description

Integrate full-text search into the puzzles module so players can discover puzzles by keyword, concept, or description. As the puzzle library grows, filtering alone becomes insufficient — players need to search across titles, descriptions, and categories in a single query. The implementation should be performant and return relevance-ranked results.

Acceptance Criteria

  • GET /puzzles/search?q= accepts a search query and returns ranked results
  • Search spans puzzle title, description, and category name
  • PostgreSQL full-text search (tsvector/tsquery) or a dedicated search index is used
  • Results are paginated and include a relevance score in the response
  • Filtering by difficulty and category can be combined with the search query
  • Empty queries fall back to the standard paginated list endpoint
  • Search queries under 2 characters return a 400 with a descriptive message
  • Unit tests cover relevant matches, empty queries, combined filters, and short query rejection

Metadata

Metadata

Assignees

Labels

GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardOfficial Campaign | FWC26Campaign: Official Campaign | FWC26

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions