public void TestEscapeQueryString() { string inputString = "\"query:Test*\"*"; string testString = "\\\"query\\:Test*\\\"*"; string result = SolrService.EscapeQueryString(inputString); Assert.AreEqual(testString, result); }
public override object GetContent(object model) { HttpContext context = HttpContext.Current; if (string.IsNullOrEmpty(SearchResultTemplate)) { SearchResultTemplate = "SearchResult"; } if (context != null) { string query = context.Request.QueryString[SimpleSearch.QUERY_PARAM]; Page = ParseInt(context.Request.QueryString[SearchResults.PAGE_PARAM], 1, 1); TotalPerPage = ParseInt(context.Request.QueryString[SearchResults.PERPAGE_PARAM], 10, 1); if (!string.IsNullOrEmpty(query)) { query = string.Format("*{0}*", SolrService.EscapeQueryString(query.Trim())); CatfishDbContext db = new CatfishDbContext(); EntityService es = new EntityService(db); var results = es.GetEntitiesTextSearch(query, new string[] { ViewHelper.GetActiveLanguage().TwoLetterISOLanguageName }); Total = results.Count(); TotalPages = (int)Math.Ceiling((float)Total / (float)TotalPerPage); if (Page < 1) { Page = 1; } else if (Page > TotalPages) { Page = TotalPages + 1; } int startValue = (Page - 1) * TotalPerPage; Results = results.OrderBy(m => m.Id).Skip(startValue).Take(TotalPerPage).ToArray(); } } return(base.GetContent(model)); }