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
-
Method Summary
Modifier and TypeMethodDescriptionsuggestNoTimeout
(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. -
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
-