Replace Summon spelling correction with ffi-hunspell#75
Open
ianiyengar wants to merge 2 commits into
Open
Conversation
ianiyengar
commented
May 5, 2026
- 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
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.