Example #1
0
        public static string SpellCheck(this SpellChecker.Net.Search.Spell.SpellChecker spellChecker, string terms)
        {
            var splitTerms   = terms.Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries).ToList();
            var checkedTerms = spellChecker.SpellCheck(splitTerms);

            return(string.Join(" ", checkedTerms));
        }
Example #2
0
        public static string DidYouMean(string query)
        {
            List<string> suggestions = new List<string>();
            string[] wordsToSpell = query.Split(new[] { ' ' });
            var spell = new SpellChecker.Net.Search.Spell.SpellChecker(SearchEnvironment.SpellIndexDir);
            spell.setStringDistance(new SpellChecker.Net.Search.Spell.LevenshteinDistance());

            foreach (var word in wordsToSpell)
            {
                suggestions.Add(spell.SuggestSimilar(word, 5).ToList().FirstOrDefault() ?? word);
            }

            string didYouMean = query;
            if (suggestions.Count > 0)
                didYouMean = String.Empty;
            foreach (var suggested in suggestions)
            {
                didYouMean += suggested + " ";
            }

            var trimmed = didYouMean.TrimEnd();
            if (string.Compare(query, trimmed, true, CultureInfo.InvariantCulture) == 0)
                return String.Empty;
            return trimmed;
        }
Example #3
0
        private void InitializeSpellChecker()
        {
            if (SpellChecker != null) return;

            var di = DictionaryBuilder.CreateTargetFolder(_pathToDictDir);
            SpellChecker = new SpellChecker.Net.Search.Spell.SpellChecker(FSDirectory.Open(di));
            InitSuggestionListFromFile();
        }
Example #4
0
        public static List <string> SpellCheck(this SpellChecker.Net.Search.Spell.SpellChecker spellChecker, List <string> terms)
        {
            var checkedTerms = new List <string>();

            foreach (var term in terms)
            {
                if (!StopAnalyzer.ENGLISH_STOP_WORDS_SET.Contains(term) && !spellChecker.Exist(term))
                {
                    checkedTerms.Add(spellChecker.SuggestSimilar(term, 7, null, null, true).FirstOrDefault() ?? term);
                }
                else
                {
                    checkedTerms.Add(term);
                }
            }
            return(checkedTerms);
        }
Example #5
0
        public virtual void  SetUp()
		{
			//create a user index
			userindex = new RAMDirectory();
			IndexWriter writer = new IndexWriter(userindex, new SimpleAnalyzer(), true);
			
			for (int i = 0; i < 1000; i++)
			{
				Document doc = new Document();
				doc.Add(new Field("field1", English.IntToEnglish(i), Field.Store.YES, Field.Index.TOKENIZED));
				doc.Add(new Field("field2", English.IntToEnglish(i + 1), Field.Store.YES, Field.Index.TOKENIZED)); // + word thousand
				writer.AddDocument(doc);
			}
			writer.Close();
			
			// create the spellChecker
			spellindex = new RAMDirectory();
			spellChecker = new SpellChecker.Net.Search.Spell.SpellChecker(spellindex);
		}
Example #6
0
        public virtual void  SetUp()
        {
            //create a user index
            userindex = new RAMDirectory();
            IndexWriter writer = new IndexWriter(userindex, new SimpleAnalyzer(), true);

            for (int i = 0; i < 1000; i++)
            {
                Document doc = new Document();
                doc.Add(new Field("field1", English.IntToEnglish(i), Field.Store.YES, Field.Index.TOKENIZED));
                doc.Add(new Field("field2", English.IntToEnglish(i + 1), Field.Store.YES, Field.Index.TOKENIZED));                 // + word thousand
                writer.AddDocument(doc);
            }
            writer.Close();

            // create the spellChecker
            spellindex   = new RAMDirectory();
            spellChecker = new SpellChecker.Net.Search.Spell.SpellChecker(spellindex);
        }
        public string GetSuggestion(string searchText)
        {
            string result = string.Empty;

            using (var reader = IndexReader.Open(_indexDirectoryPath, true))
            {
                var spellchecker = new SpellChecker.Net.Search.Spell.SpellChecker(_indexDirectoryPath);

                spellchecker.IndexDictionary(new SpellChecker.Net.Search.Spell.LuceneDictionary(reader, "SpecialtyName"));
                //spellchecker.IndexDictionary(new SpellChecker.Net.Search.Spell.LuceneDictionary(reader, "City"));

                searchText.Split(' ')
                          .ToList()
                          .ForEach(word =>
                          {
                              result += (spellchecker.SuggestSimilar(word, 1).FirstOrDefault() ?? word) + " ";
                          });
            }

            return result.Trim();
        }
 public PreFilter(TokenStream in_Renamed, LuceneSpellChecker spellChecker, int numberOfSuggestions)
     : base(in_Renamed)
 {
     SpellChecker        = spellChecker;
     NumberOfSuggestions = numberOfSuggestions;
 }
 public StemmerCompareAnalyzer(ISet <string> stopWords, LuceneSpellChecker spellChecker, int numberOfSuggestion)
 {
     StopWords           = stopWords;
     SpellChecker        = spellChecker;
     NumberOfSuggestions = numberOfSuggestion;
 }