예제 #1
0
        public ActionResult Search(string term)
        {
            IRavenQueryable <RecentPopularTags.ReduceResult> query = DocumentSession
                                                                     .Query <RecentPopularTags.ReduceResult, RecentPopularTags>()
                                                                     .Where(x => x.Tag == term);

            // Does this tag exist?
            RecentPopularTags.ReduceResult tag = query.FirstOrDefault();

            var results = new List <string>();

            if (tag != null)
            {
                results.Add(tag.Tag);
            }
            else
            {
                // No exact match .. so lets use Suggest.
                SuggestionQueryResult suggestedTags = query.Suggest();
                if (suggestedTags.Suggestions.Length > 0)
                {
                    results.AddRange(suggestedTags.Suggestions);
                }
            }

            return(Json(results, JsonRequestBehavior.AllowGet));
        }