protected string GetElasticFieldName(SortTypeEnumContract sortValue) { switch (sortValue) { case SortTypeEnumContract.Title: return(TitleField); case SortTypeEnumContract.Author: return(AuthorField); case SortTypeEnumContract.Dating: return(DatingField); default: return(TitleField); } }
public ActionResult AdvancedSearchCorpusPaged(string json, int start, int count, int contextLength, SortTypeEnumContract sortingEnum, bool sortAsc, IList <long> selectedBookIds, IList <int> selectedCategoryIds) { var deserialized = JsonConvert.DeserializeObject <IList <ConditionCriteriaDescriptionBase> >(json, new ConditionCriteriaDescriptionConverter()); var listSearchCriteriaContracts = Mapper.Map <List <SearchCriteriaContract> >(deserialized); if (listSearchCriteriaContracts.FirstOrDefault(x => x.Key == CriteriaKey.Fulltext || x.Key == CriteriaKey.Heading || x.Key == CriteriaKey.Sentence || x.Key == CriteriaKey.TokenDistance) == null) //TODO add check on string values empty { throw new ArgumentException("search in text can't be ommited"); } AddCategoryCriteria(listSearchCriteriaContracts, selectedBookIds, selectedCategoryIds); var client = GetBookClient(); var resultList = client.SearchCorpus(new CorpusSearchRequestContract { Start = start, Count = count, ContextLength = contextLength, ConditionConjunction = listSearchCriteriaContracts, Sort = sortingEnum, SortDirection = sortAsc == false ? SortDirectionEnumContract.Desc : SortDirectionEnumContract.Asc, }, GetDefaultProjectType()); return(Json(new { results = resultList })); }
public ActionResult TextSearchFulltextPaged(string text, int start, int count, int contextLength, SortTypeEnumContract sortingEnum, bool sortAsc, IList <long> selectedBookIds, IList <int> selectedCategoryIds) { if (string.IsNullOrEmpty(text)) { throw new ArgumentException("text can't be null in fulltext search"); } var listSearchCriteriaContracts = CreateTextCriteriaList(CriteriaKey.Fulltext, text); AddCategoryCriteria(listSearchCriteriaContracts, selectedBookIds, selectedCategoryIds); var client = GetBookClient(); var resultList = client.SearchCorpus(new CorpusSearchRequestContract { Start = start, Count = count, ContextLength = contextLength, ConditionConjunction = listSearchCriteriaContracts, Sort = sortingEnum, SortDirection = sortAsc == false ? SortDirectionEnumContract.Desc : SortDirectionEnumContract.Asc, }, GetDefaultProjectType()); return(Json(new { results = resultList })); }