Class Hunspell
- java.lang.Object
 - 
- org.apache.lucene.analysis.hunspell.Hunspell
 
 
- 
public class Hunspell extends Object
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
Constructors Constructor Description Hunspell(Dictionary dictionary)Hunspell(Dictionary dictionary, TimeoutPolicy policy, Runnable checkCanceled) 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description List<String>getRoots(String word)Find all roots that could result in the given word after case conversion and adding affixes.booleanspell(String word)List<String>suggest(String word)List<String>suggest(String word, long timeLimitMs) 
 - 
 
- 
- 
Constructor Detail
- 
Hunspell
public Hunspell(Dictionary dictionary)
 
- 
Hunspell
public Hunspell(Dictionary dictionary, TimeoutPolicy policy, Runnable checkCanceled)
- 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 Detail
- 
spell
public boolean spell(String word)
- Returns:
 - whether the given word's spelling is considered correct according to Hunspell rules
 
 
- 
getRoots
public List<String> getRoots(String word)
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
public List<String> suggest(String word) throws SuggestionTimeoutException
- Returns:
 - suggestions for the given misspelled word
 - Throws:
 SuggestionTimeoutException- if the computation takes too long andTimeoutPolicy.THROW_EXCEPTIONwas specified in the constructor
 
- 
suggest
public List<String> suggest(String word, long timeLimitMs) throws SuggestionTimeoutException
- 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_EXCEPTIONwas specified in the constructor
 
 - 
 
 -