private static string PreProcessDateTerms(string query, RangeQueryParser queryParser) { var searchMatches = dateQuery.Matches(query); if (searchMatches.Count < 1) { return(query); } var queryStringBuilder = new StringBuilder(query); for (var i = searchMatches.Count - 1; i >= 0; i--) // reversing the scan so we won't affect positions of later items { var searchMatch = searchMatches[i]; var field = searchMatch.Groups[1].Value; var termReplacement = searchMatch.Groups[2].Value; var replaceToken = queryParser.ReplaceToken(field, termReplacement); queryStringBuilder.Remove(searchMatch.Index, searchMatch.Length); queryStringBuilder .Insert(searchMatch.Index, field) .Insert(searchMatch.Index + field.Length, ":") .Insert(searchMatch.Index + field.Length + 1, replaceToken); } return(queryStringBuilder.ToString()); }
private static string PreProcessDateTerms(string query, RangeQueryParser queryParser) { var searchMatches = dateQuery.Matches(query); if (searchMatches.Count < 1) return query; var queryStringBuilder = new StringBuilder(query); for (var i = searchMatches.Count-1; i >= 0; i--) // reversing the scan so we won't affect positions of later items { var searchMatch = searchMatches[i]; var field = searchMatch.Groups[1].Value; var termReplacement = searchMatch.Groups[2].Value; var replaceToken = queryParser.ReplaceToken(field, termReplacement); queryStringBuilder.Remove(searchMatch.Index, searchMatch.Length); queryStringBuilder .Insert(searchMatch.Index, field) .Insert(searchMatch.Index + field.Length, ":") .Insert(searchMatch.Index + field.Length + 1, replaceToken); } return queryStringBuilder.ToString(); }