Ejemplo n.º 1
0
 public ActionResult GetHint(string term)
 {
     if (!string.IsNullOrEmpty(term))
     {
         var seacher = new Seacher(dataFolder);
         WildcardQuery nameQuery = new WildcardQuery(new Term("Name", "*" + term + "*"));
         var Result = seacher.Search(nameQuery, 5);
         Result.SearchResultItems.OrderBy(x => x.Type);
         if (Result.SearchResultItems.Count > 0)
         {
             Result.SearchResultItems.OrderBy(x => x.Type);
             return Json(Result.SearchResultItems);
         }
     }
     return new JsonResult
     {
         Data = new { OK = false }
     };
 }
Ejemplo n.º 2
0
        public ActionResult OnSearch(string searchString)
        {
            if (!string.IsNullOrEmpty(searchString))
            {
                var finalQuery = new BooleanQuery();
                string[] terms = searchString.Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries);

                for (int i = 0; i < terms.Count(); i++)
                {
                    terms[i].Replace("~", "");
                    finalQuery.Add(new WildcardQuery(new Term("FilmName", "*" + terms[i] + "*")), Occur.SHOULD);
                    finalQuery.Add(new WildcardQuery(new Term("FilmGenre", "*" + terms[i] + "*")), Occur.SHOULD);
                    finalQuery.Add(new WildcardQuery(new Term("FilmCompany", "*" + terms[i] + "*")), Occur.SHOULD);
                }

                var seacher = new Seacher(dataFolder);
                var Result = seacher.Search(finalQuery, 25, "FilmName", OnSeachSort());
                if (Result.SearchResultItems.Count > 0)
                {
                    var film_ids = Result.SearchResultItems.Select(item => item.Id).ToArray();

                    var idToIndexMap = film_ids.Select((i, v) => new { Index = i, Value = v })
                                               .ToDictionary(
                                                    pair => pair.Index,
                                                    pair => pair.Value
                                                );

                    var searchedFilms = GetFilms<Film>(film => film_ids.Contains(film.Id))
                                       .OrderBy(film => idToIndexMap[film.Id]);
                    return Json(searchedFilms);
                }
            }
            return new JsonResult
            {
                Data = new { OK = false},
            };
        }