Пример #1
0
        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;
        }
Пример #2
0
        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);
        }