private void OnRefreshWords(object sender, EventArgs e) { _comboBoxSearchValue.DataSource = null; StringCollection indexDirs = GetIndexDirectories(_textBoxSearchIndexPath.Text, true); if (indexDirs == null) { return; } string searchWord = _comboBoxSearchValue.Text; if (string.IsNullOrEmpty(searchWord)) { searchWord = "a"; } List <string> words = new List <string>(); using (WordListBuilder wordsBuilder = new WordListBuilder()) { Dictionary <string, int> wordsMap = new Dictionary <string, int>(); foreach (string dir in indexDirs) { if (wordsBuilder.OpenIndex(dir)) { wordsBuilder.ListWords(searchWord, 5); for (int i = 0; i < wordsBuilder.Count; ++i) { wordsMap[wordsBuilder.GetNthWord(i)] = 1; } } } foreach (KeyValuePair <string, int> kv in wordsMap) { words.Add(kv.Key); } } _comboBoxSearchValue.DataSource = words; }
public List <WordItem> GetResults(string indexPath, string segment) { var wordListBuilder = new WordListBuilder(); wordListBuilder.OpenIndex(indexPath); wordListBuilder.ListWords(segment, 4); var words = new List <WordItem>(); for (int i = 0; i < wordListBuilder.Count; ++i) { var item = new WordItem(); item.MakeFromWordListBuilder(wordListBuilder, i); if (item.HitCount > 0) { words.Add(item); } } return(words); }