public void GetSearchResultsBasic() { const string keyword = "awesome"; const string userUrl = "mysite/userid/1"; const string tabUrl1 = "mysite/Home"; const string tabUrl2 = "mysite/AboutUs"; var now = DateTime.UtcNow; var doc1 = new SearchDocument { UniqueKey = "key01", TabId = TabId1, Url = tabUrl1, Title = keyword, SearchTypeId = TabSearchTypeId, ModifiedTimeUtc = now, PortalId = PortalId0, RoleId = RoleId731 }; var doc2 = new SearchDocument { UniqueKey = "key02", TabId = TabId2, Url = tabUrl2, Title = keyword, SearchTypeId = TabSearchTypeId, ModifiedTimeUtc = now, PortalId = PortalId0, RoleId = RoleId0 }; var userdoc = new SearchDocument { UniqueKey = "key03", Url = userUrl, Title = keyword, SearchTypeId = UserSearchTypeId, ModifiedTimeUtc = now, PortalId = PortalId0, RoleId = RoleId0 }; _internalSearchController.AddSearchDocument(doc1); _internalSearchController.AddSearchDocument(doc2); _internalSearchController.AddSearchDocument(userdoc); _internalSearchController.Commit(); var query = new SearchQuery { KeyWords = keyword, PortalIds = new List <int> { PortalId0 }, SearchTypeIds = new[] { ModuleSearchTypeId, TabSearchTypeId, UserSearchTypeId }, BeginModifiedTimeUtc = now.AddMinutes(-1), EndModifiedTimeUtc = now.AddMinutes(+1), PageIndex = 1, PageSize = 15, SortField = 0, TitleSnippetLength = 120, BodySnippetLength = 300, WildCardSearch = true }; //Run var search = GetGroupBasicViewResults(query); //Assert - overall 2 groups: tabs and users var groupedBasicViews = search as List <GroupedBasicView> ?? search.ToList(); Assert.AreEqual(2, groupedBasicViews.Count()); //1 User results Assert.AreEqual(1, groupedBasicViews.Single(x => x.DocumentTypeName == "user").Results.Count()); //User result should have 1 attribute(avatar) Assert.AreEqual(1, groupedBasicViews.Single(x => x.DocumentTypeName == "user").Results.ElementAt(0).Attributes.Count()); //2 Tabs results Assert.AreEqual(2, groupedBasicViews.Single(x => x.DocumentTypeName == "tab").Results.Count()); }
private SearchStatistics GetSearchStatistics() { _internalSearchController.Commit(); Thread.Sleep((int)(_readerStaleTimeSpan * 1000)); // time to flush data to Lucene return(_internalSearchController.GetSearchStatistics()); }