コード例 #1
0
        public IActionResult QuickKeywordSearch([FromBody] QuickSearchModel searchModel)
        {
            if (searchModel == null ||
                String.IsNullOrWhiteSpace(searchModel.keywords) ||
                searchModel.keywords.Length < _settings.MinimumKeywordSearchLength)
            {
                return(new StatusCodeResult(400));
            }

            KeywordSearchOptions searchOptions = new KeywordSearchOptions(IsUserLoggedIn(), searchModel.keywords, true);

            List <SearchResponseItem> searchResults = _searchProvider.KeywordSearch(searchOptions);

            IEnumerable <SearchResponseItem> topResults = searchResults.OrderByDescending(r => r.Relevance).Take(5);

            if (_settings.HighlightQuickSearchTerms)
            {
                foreach (SearchResponseItem item in topResults)
                {
                    item.HighlightKeywords(searchModel.keywords.Length);
                }
            }

            return(new JsonResult(topResults)
            {
                StatusCode = 200,
                ContentType = "application/json"
            });
        }