private IEnumerable <SearchResult> SimpleSearch(TextSearch search, StringBuilder query, FieldMappingQueryParser <TextDocument> parser) { var args = search.Content.Split(' ').Distinct().ToArray(); foreach (var arg in args) { if (query.Length > 0) { query.Append(" AND "); } query.AppendFormat("{0}", QueryParser.Escape(arg)); } foreach (var match in _provider.AsQueryable <TextDocument>().Where(parser.Parse(query.ToString()))) { var tmp = new SearchResult { FriendlyName = match.FriendlyName, HostName = Environment.MachineName, LocalSourceIdentity = match.Id, OriginalRemoteSourceIdentity = match.RemoteIdentity }; foreach (var arg in args) { tmp.AddStatistic(arg, args.Count(verb => match.SearchText.Contains(verb)).ToString()); } tmp.AddStatistic(match.Id, match.SearchText); yield return(tmp); } }
public NuGetQueryParser(FieldMappingQueryParser <LucenePackage> parser) : this(parser.MatchVersion, parser.DocumentMapper) { }