Class Hunspell
java.lang.Object
org.apache.lucene.analysis.hunspell.Hunspell
A spell checker based on Hunspell dictionaries. This class can be used in place of native
Hunspell for many languages for spell-checking and suggesting purposes. Note that not all
languages are supported yet. For example:
- Hungarian (as it doesn't only rely on dictionaries, but has some logic directly in the source code
- Languages with Unicode characters outside of the Basic Multilingual Plane
- PHONE affix file option for suggestions
The objects of this class are thread-safe.
-
Constructor Summary
ConstructorDescriptionHunspell
(Dictionary dictionary) Hunspell
(Dictionary dictionary, TimeoutPolicy policy, Runnable checkCanceled) -
Method Summary
-
Constructor Details
-
Hunspell
-
Hunspell
- Parameters:
policy
- a strategy determining what to do when API calls take too much timecheckCanceled
- an object that's periodically called, allowing to interrupt spell-checking or suggestion generation by throwing an exception
-
-
Method Details
-
spell
- Returns:
- whether the given word's spelling is considered correct according to Hunspell rules
-
getRoots
Find all roots that could result in the given word after case conversion and adding affixes. This corresponds to the originalhunspell -s
(stemming) functionality.Some affix rules are relaxed in this stemming process: e.g. explicitly forbidden words are still returned. Some of the returned roots may be synthetic and not directly occur in the *.dic file (but differ from some existing entries in case). No roots are returned for compound words.
The returned roots may be used to retrieve morphological data via
Dictionary.lookupEntries(java.lang.String)
. -
suggest
- Returns:
- suggestions for the given misspelled word
- Throws:
SuggestionTimeoutException
- if the computation takes too long andTimeoutPolicy.THROW_EXCEPTION
was specified in the constructor
-
suggest
- Parameters:
word
- the misspelled word to calculate suggestions fortimeLimitMs
- the duration limit in milliseconds, after which the associatedTimeoutPolicy
's effects (exception or partial result) may kick in- Throws:
SuggestionTimeoutException
- if the computation takes too long andTimeoutPolicy.THROW_EXCEPTION
was specified in the constructor
-