Skip to content

Replace Summon spelling correction with ffi-hunspell#75

Open
ianiyengar wants to merge 2 commits into
masterfrom
feature/hunspell-spell-check
Open

Replace Summon spelling correction with ffi-hunspell#75
ianiyengar wants to merge 2 commits into
masterfrom
feature/hunspell-spell-check

Conversation

@ianiyengar

Copy link
Copy Markdown
  • Add ffi-hunspell as a runtime dependency in gemspec
  • Replace DidYouMean::SpellChecker with FFI::Hunspell.dict('en_US') in the words initializer
  • Update spell_check helper to use Hunspell's check?/suggest API
  • Add Levenshtein-based reranking of suggestions for better accuracy
  • Fix index view to use @spell_check (controller-generated) instead of @summon.spelling_suggestion; remove stale Summon error guard

- Add ffi-hunspell as a runtime dependency in gemspec
- Replace DidYouMean::SpellChecker with FFI::Hunspell.dict('en_US')
  in the words initializer
- Update spell_check helper to use Hunspell's check?/suggest API
- Add Levenshtein-based reranking of suggestions for better accuracy
- Fix index view to use @spell_check (controller-generated) instead
  of @summon.spelling_suggestion; remove stale Summon error guard
@ianiyengar ianiyengar requested a review from kbeswick May 5, 2026 20:14
Implements spell correction that leverages both dynamic and static name sources:

- Query webnodes Solr staff index for firstname/lastname fields with 12-hour cache
- Add YAML fallback config (config/names.yml) for manual canonical name overrides
- Mine author names from loaded search results as final post-search fallback
- Filter typo candidates to prevent incorrect matches (e.g., 'Jonathn' vs 'Jonathan')
- Remove UI gate that suppressed suggestions when best_bets had network errors

Key improvements:
- Solves 'Jonathn' → 'Jonathan' correction case via result-derived author names
- Combines Levenshtein distance matching with candidate filtering
- Handles 'Last, First' author format conversion to 'First Last'
- Extends SearchHelper with result mining and name extraction methods
- Adds regression tests for typo filtering and fallback corpus scenarios
- Maintains backward compatibility with Hunspell word-level corrections

Closes issue: Person names not corrected in spell suggestions
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.

2 participants