private static string ParseNormalSearchTerms(string query, SandoQueryDescription sandoQueryDescription) { query = Regex.Replace(query, InvalidCharactersRegex, " "); //ensure non-split query terms are added too. var nonSplitTerms = query.Split(' '); foreach (var nonSplit in nonSplitTerms) { if (!String.Empty.Equals(nonSplit)) { sandoQueryDescription.SearchTerms.Add(nonSplit.Trim()); } } var wordSplitter = new WordSplitter(); var searchTerms = wordSplitter.ExtractWords(query).Where(w => !String.IsNullOrWhiteSpace(w)); foreach (var searchTerm in searchTerms) { sandoQueryDescription.SearchTerms.Add(searchTerm.Trim()); query = query.Replace(searchTerm, " "); } sandoQueryDescription.SearchTerms = sandoQueryDescription.SearchTerms.Distinct().ToList(); return(query); }
private static string ParseNormalSearchTerms(string query, SandoQueryDescription sandoQueryDescription) { query = Regex.Replace(query, InvalidCharactersRegex, " "); var wordSplitter = new WordSplitter(); //add unsplit words var splitTerms = query.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); foreach (string term in splitTerms) { sandoQueryDescription.SearchTerms.Add(term.Trim()); } var searchTerms = wordSplitter.ExtractWords(query).Where(w => !String.IsNullOrWhiteSpace(w)); foreach (var searchTerm in searchTerms) { sandoQueryDescription.SearchTerms.Add(searchTerm.Trim()); query = query.Replace(searchTerm, " "); } sandoQueryDescription.SearchTerms = sandoQueryDescription.SearchTerms.Distinct().ToList(); return(query); }
private static string ParseNormalSearchTerms(string query, SandoQueryDescription sandoQueryDescription) { query = Regex.Replace(query, InvalidCharactersRegex, " "); var wordSplitter = new WordSplitter(); //add unsplit words var splitTerms = query.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); foreach (string term in splitTerms) { sandoQueryDescription.SearchTerms.Add(term.Trim()); } var searchTerms = wordSplitter.ExtractWords(query).Where(w => !String.IsNullOrWhiteSpace(w) && !splitTerms.Contains("-"+w)).OrderByDescending(s => s.Length); foreach (var searchTerm in searchTerms) { sandoQueryDescription.SearchTerms.Add(searchTerm.Trim()); query = query.Replace(searchTerm, " "); } sandoQueryDescription.SearchTerms = sandoQueryDescription.SearchTerms.Distinct().ToList(); return query; }
private static string ParseNormalSearchTerms(string query, SandoQueryDescription sandoQueryDescription) { query = Regex.Replace(query, InvalidCharactersRegex, " "); //ensure non-split query terms are added too. var nonSplitTerms = query.Split(' '); foreach (var nonSplit in nonSplitTerms) { if(!String.Empty.Equals(nonSplit)) sandoQueryDescription.SearchTerms.Add(nonSplit.Trim()); } var wordSplitter = new WordSplitter(); var searchTerms = wordSplitter.ExtractWords(query).Where(w => !String.IsNullOrWhiteSpace(w)); foreach (var searchTerm in searchTerms) { sandoQueryDescription.SearchTerms.Add(searchTerm.Trim()); query = query.Replace(searchTerm, " "); } sandoQueryDescription.SearchTerms = sandoQueryDescription.SearchTerms.Distinct().ToList(); return query; }