Class Suggester
java.lang.Object
org.apache.lucene.analysis.hunspell.Suggester
A generator for misspelled word corrections based on Hunspell flags. The suggestions are searched
for in two main ways:
- Modification: trying to insert/remove/delete/swap parts of the word to get something
acceptable. The performance of this part depends heavily on the contents of TRY, MAP, REP,
KEY directives in the .aff file. To speed up this part, consider using
withFragmentChecker(org.apache.lucene.analysis.hunspell.FragmentChecker)
. - Enumeration: if the modification hasn't produced "good enough" suggestions, the whole
dictionary is scanned and simple affixes are added onto the entries to check if that
produces anything similar to the given misspelled word. This depends on the dictionary size
and the affix count, and it can take noticeable amount of time. To speed this up,
withSuggestibleEntryCache()
can be used.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionReturns a copy of this suggester instance that doesn't stop after encountering acceptable words after applying REP rules.suggestNoTimeout
(String word, Runnable checkCanceled) Compute suggestions for the given misspelled wordsuggestWithTimeout
(String word, long timeLimitMs, Runnable checkCanceled) withFragmentChecker
(FragmentChecker checker) Returns a copy of this suggester instance withFragmentChecker
hint that can improve the performance of the "Modification" phase performance.Returns a copy of this suggester instance with better "Enumeration" phase performance (seeSuggester
documentation), but using more memory.
-
Constructor Details
-
Suggester
-
-
Method Details
-
withSuggestibleEntryCache
Returns a copy of this suggester instance with better "Enumeration" phase performance (seeSuggester
documentation), but using more memory. With this option, the dictionary entries are stored as fast-to-iterate plain words instead of highly compressed prefix trees. -
withFragmentChecker
Returns a copy of this suggester instance withFragmentChecker
hint that can improve the performance of the "Modification" phase performance. -
proceedPastRep
Returns a copy of this suggester instance that doesn't stop after encountering acceptable words after applying REP rules. By default, Hunspell stops when it finds any, but this behavior may not always be desirable, e.g., if we have "REP i ea", "tims" be replaced only by "teams" and not "times", which could also be meant. -
suggestNoTimeout
Compute suggestions for the given misspelled word- Parameters:
word
- the misspelled word to calculate suggestions forcheckCanceled
- an object that's periodically called, allowing to interrupt or suggestion generation by throwing an exception
-
suggestWithTimeout
public List<String> suggestWithTimeout(String word, long timeLimitMs, Runnable checkCanceled) throws SuggestionTimeoutException - Parameters:
word
- the misspelled word to calculate suggestions fortimeLimitMs
- the duration limit in milliseconds after which the computation is interruped by an exceptioncheckCanceled
- an object that's periodically called, allowing to interrupt or suggestion generation by throwing an exception- Throws:
SuggestionTimeoutException
- if the computation takes too long. UseSuggestionTimeoutException.getPartialResult()
to get the suggestions computed up to that point
-