public IActionResult Get(string searchTerm) { if (string.IsNullOrEmpty(searchTerm)) { return(new JsonResult(null)); } if (searchTerm.StartsWith("*") || searchTerm.StartsWith("?")) { return(new JsonResult(null)); } CloudStorageAccount cloudStorageAccount = CloudStorageAccount.DevelopmentStorageAccount; CloudStorageAccount.TryParse(_options.ConnectionString, out cloudStorageAccount); var azureDirectory = new AzureDirectory(cloudStorageAccount, "TestCatalog"); var searcher = new IndexSearcher(azureDirectory); var analyzer = new NuGet.Indexing.IdentifierAnalyzer(); var queryParser = new MultiFieldQueryParser(Lucene.Net.Util.Version.LUCENE_30, new[] { "Type", "ReturnType" }, analyzer); Query query = queryParser.Parse(searchTerm); //execute the query var hits = searcher.Search(query, 50); var packages = new List <SearchResult>(); foreach (var hit in hits.ScoreDocs) { var doc = searcher.Doc(hit.Doc); var result = new SearchResult { FullTypeName = doc.GetField("Type").StringValue, PackageName = doc.GetField("Package").StringValue }; if (doc.GetField("Signature") != null) { result.Signature = doc.GetField("Signature").StringValue; } if (doc.GetField("ReturnType") != null) { result.ReturnType = doc.GetField("ReturnType").StringValue; } packages.Add(result); } return(new JsonResult(packages)); }
public IActionResult Get(string searchTerm) { if (string.IsNullOrEmpty(searchTerm)) { return new JsonResult(null); } if (searchTerm.StartsWith("*") || searchTerm.StartsWith("?")) { return new JsonResult(null); } CloudStorageAccount cloudStorageAccount = CloudStorageAccount.DevelopmentStorageAccount; CloudStorageAccount.TryParse(_options.ConnectionString, out cloudStorageAccount); var azureDirectory = new AzureDirectory(cloudStorageAccount, "TestCatalog"); var searcher = new IndexSearcher(azureDirectory); var analyzer = new NuGet.Indexing.IdentifierAnalyzer(); var queryParser = new MultiFieldQueryParser(Lucene.Net.Util.Version.LUCENE_30, new[] { "Type", "ReturnType" }, analyzer); Query query = queryParser.Parse(searchTerm); //execute the query var hits = searcher.Search(query, 50); var packages = new List<SearchResult>(); foreach (var hit in hits.ScoreDocs) { var doc = searcher.Doc(hit.Doc); var result = new SearchResult { FullTypeName = doc.GetField("Type").StringValue, PackageName = doc.GetField("Package").StringValue }; if (doc.GetField("Signature") != null) { result.Signature = doc.GetField("Signature").StringValue; } if (doc.GetField("ReturnType") != null) { result.ReturnType = doc.GetField("ReturnType").StringValue; } packages.Add(result); } return new JsonResult(packages); }