public override bool IncrementToken() { if (!input.IncrementToken()) { return(false); } ITermAttribute termAttribute = this.GetAttribute <ITermAttribute>(); ISourceAttribute sourceAttribute = GetAttribute <ISourceAttribute>(); ISpellAttribute spellAttribute = GetAttribute <ISpellAttribute>(); IStemAttribute stemAttribute = GetAttribute <IStemAttribute>(); sourceAttribute.Term = termAttribute.Term; spellAttribute.Term = termAttribute.Term; stemAttribute.Term = termAttribute.Term; if (!SpellChecker.Exist(spellAttribute.Term)) { var res = SpellChecker.SuggestSimilar(spellAttribute.Term, 100); if (res.Length != 0) { spellAttribute.Term = res[0]; } } termAttribute.SetTermBuffer(spellAttribute.Term); return(true); }
public override bool IncrementToken() { if (!input.IncrementToken()) { return(false); } ITermAttribute termAttribute = GetAttribute <ITermAttribute>(); ISpellAttribute spellAttribute = GetAttribute <ISpellAttribute>(); IStemAttribute stemAttribute = GetAttribute <IStemAttribute>(); var term = termAttribute.Term; var stem = _stemmer.Stem(term); stemAttribute.Term = stem; SpellChecker.setStringDistance(_customDistance); if (!SpellChecker.Exist(term)) { var similarWords = SpellChecker.SuggestSimilar(term, NumberOfSuggestions); if (similarWords.Length != 0) { spellAttribute.Term = similarWords[0]; return(true); } } else { spellAttribute.Term = term; return(true); } SpellChecker.setStringDistance(_defaultDistance); if (!SpellChecker.Exist(stem)) { var similarWords = SpellChecker.SuggestSimilar(stem, NumberOfSuggestions); if (similarWords.Length != 0) { spellAttribute.Term = similarWords[0]; return(true); } } spellAttribute.Term = stem; return(true); }