public static async Task Segments(IOwinContext context, SearcherManager searcherManager) { searcherManager.MaybeReopen(); IndexSearcher searcher = searcherManager.Get(); try { IndexReader indexReader = searcher.IndexReader; JArray segments = new JArray(); foreach (ReadOnlySegmentReader segmentReader in indexReader.GetSequentialSubReaders()) { JObject segmentInfo = new JObject(); segmentInfo.Add("segment", segmentReader.SegmentName); segmentInfo.Add("documents", segmentReader.NumDocs()); segments.Add(segmentInfo); } await ServiceHelpers.WriteResponse(context, System.Net.HttpStatusCode.OK, segments); } finally { searcherManager.Release(searcher); } }
static string GetIndexName(SearcherManager searcherManager) { //TODO: consolidate when we combine the SearcherManager types if (searcherManager is NuGetSearcherManager) { return(((NuGetSearcherManager)searcherManager).IndexName); } if (searcherManager is SecureSearcherManager) { return(((SecureSearcherManager)searcherManager).IndexName); } return(string.Empty); }
static string GetLastReopen(SearcherManager searcherManager) { //TODO: consolidate when we combine the SearcherManager types if (searcherManager is NuGetSearcherManager) { return(((NuGetSearcherManager)searcherManager).LastReopen.ToString("o")); } if (searcherManager is SecureSearcherManager) { return(((SecureSearcherManager)searcherManager).LastReopen.ToString("o")); } return(string.Empty); }
public static async Task Stats(IOwinContext context, SearcherManager searcherManager) { searcherManager.MaybeReopen(); IndexSearcher searcher = searcherManager.Get(); try { IndexReader indexReader = searcher.IndexReader; JObject result = new JObject(); result.Add("numDocs", indexReader.NumDocs()); result.Add("indexName", GetIndexName(searcherManager)); result.Add("lastReopen", GetLastReopen(searcherManager)); result.Add("commitUserData", GetCommitUserData(indexReader)); await ServiceHelpers.WriteResponse(context, System.Net.HttpStatusCode.OK, result); } finally { searcherManager.Release(searcher); } }