Skip to content

Enable FTS5 Porter stemmer for skill search#49

Merged
Aaronontheweb merged 3 commits intodevfrom
feature/fts5-porter-stemmer
Apr 27, 2026
Merged

Enable FTS5 Porter stemmer for skill search#49
Aaronontheweb merged 3 commits intodevfrom
feature/fts5-porter-stemmer

Conversation

@Aaronontheweb
Copy link
Copy Markdown
Contributor

Summary

  • Adds migration 002_fts5_porter_stemmer.sql that rebuilds the FTS5 virtual table with tokenize='porter unicode61'
  • Searches like "closed deals" and "closing" now match skills containing "close deal" via Porter stemming
  • Adds integration test validating stemmed search matches

Depends on #48 (migration system)
Closes #43

Test plan

  • dotnet build -c Release — 0 warnings
  • dotnet test -c Release — all 68 tests pass (48 unit + 20 integration)
  • New SearchSkills_WithPorterStemming_MatchesStemmedTerms test passes
  • scripts/Add-FileHeaders.ps1 -Verify — all headers present
  • dotnet slopwatch analyze — 0 issues
  • CI passes on ubuntu + windows

Replace inline schema constant in DatabaseInitializer with numbered SQL
migration files and a SchemaMigrator that tracks applied versions in a
schema_version table. Existing databases are handled safely via
IF NOT EXISTS clauses in migration 001.
Add migration 002 to rebuild the FTS5 virtual table with
tokenize='porter unicode61' so inflected search terms like
"closed deals" and "closing" match skills containing "close deal".
@Aaronontheweb Aaronontheweb enabled auto-merge (squash) April 27, 2026 21:15
@Aaronontheweb Aaronontheweb merged commit 1b8ea34 into dev Apr 27, 2026
5 checks passed
@Aaronontheweb Aaronontheweb deleted the feature/fts5-porter-stemmer branch April 27, 2026 21:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Enable FTS5 Porter stemmer for skill search

1 participant