コード例 #1
0
        /// <summary>
        /// This function returns a partial match list
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public List <long> FindPartialMatches(long id)
        {
            WordTransaction transaction = m_WordTransactions.Find(x => x.Id == id);

            if (transaction != null)
            {
                return(transaction.WordPartialMatches);
            }

            return(null);
        }
コード例 #2
0
ファイル: QueryBuilder.cs プロジェクト: abhishekp314/Neuroam
        public string BuildQuery(List <long> ids)
        {
            string          outQuery    = "";
            WordTransaction transaction = null;

            foreach (var id in ids)
            {
                transaction = m_WordDictionary.Find(id);
                if (transaction != null)
                {
                    outQuery += transaction.Word + " ";
                }
            }
            return(outQuery.Trim());
        }
コード例 #3
0
        public void BuildPartialMatches(WordTransaction newWordTranscation)
        {
            string loweredWord = newWordTranscation.Word.ToLower();

            foreach (var transcation in m_WordTransactions)
            {
                string transcationWordLowered = transcation.Word.ToLower();
                if (transcationWordLowered.Contains(loweredWord) || loweredWord.Contains(transcationWordLowered))
                {
                    // Create 2-way partial match ids
                    if (!transcation.WordPartialMatches.Contains(newWordTranscation.Id))
                    {
                        transcation.WordPartialMatches.Add(newWordTranscation.Id);
                    }

                    if (!newWordTranscation.WordPartialMatches.Contains(transcation.Id))
                    {
                        newWordTranscation.WordPartialMatches.Add(transcation.Id);
                    }
                }
            }
        }
コード例 #4
0
        public long Add(string word)
        {
            long outId = -1;

            if (!string.IsNullOrWhiteSpace(word))
            {
                string          normalizedWord = NormalizeWord(word);
                WordTransaction exists         = Find(normalizedWord);
                if (exists == null)
                {
                    outId = GetNextId();
                    WordTransaction newWord = new WordTransaction(outId, normalizedWord);
                    BuildPartialMatches(newWord);
                    m_WordTransactions.Add(newWord);
                    m_IsDictionaryDirty = true;
                }
                else
                {
                    outId = exists.Id;
                }
            }
            return(outId);
        }