예제 #1
0
        private List <NewsModel> GetSearchResult(out int MatchCount, out int PageCount)
        {
            SearchInfo InputInfo = new SearchInfo()
            {
                ConfigElement = Config.Searches["news"],
                PageIndex     = PageIndex,
                PageSize      = PageSize,
                QueryString   = SearchWord
            };

            Searcher             s         = new NewsSearcher(InputInfo);
            List <ISearchEntity> RawResult = s.GetSearchResult(out MatchCount);


            //在这里排序



            List <NewsModel> SearchResult = new List <NewsModel>();
            int PageLowerBound            = (InputInfo.PageIndex - 1) * PageSize;
            int PageUpperBound            = PageLowerBound + PageSize;

            PageCount = (int)(MatchCount / PageSize) + 1;

            for (int i = 0; i < RawResult.Count; i++)
            {
                if (i > PageLowerBound && i <= PageUpperBound)
                {
                    SearchResult.Add((NewsModel)RawResult[i]);
                }
            }

            return(SearchResult);
        }
예제 #2
0
        public ActionResult TestSearch()
        {
            var seg = new JiebaSegmenter();

            seg.AddWord("机器学习");

            NewsSearcher.ClearLuceneIndex();

            var data = NewsRepository.GetAll();

            NewsSearcher.UpdateLuceneIndex(data);

            var results = NewsSearcher.Search("方法研究");


            return(View(results));
        }