Пример #1
0
    private string GetNavigate(TNews news)
    {
        StringBuilder herf = new StringBuilder();

        herf.AppendFormat(@"<a href=""{0}"" target=""_blank"">", news.Url);
        herf.AppendFormat(@"{0}</a><br>", news.TitleHighLighter);
        herf.AppendFormat(@"<font size=-1>{0}</font>", news.Abstract);
        herf.AppendFormat(@"<br><font size=-1 color=#008000>{0}</font>", news.Url);
        return(herf.ToString());
    }
Пример #2
0
    private string GetHerf(TNews news)
    {
        StringBuilder herf = new StringBuilder();

        herf.AppendFormat(@"<a href=""{0}"" target=""_blank"">", news.Url);
        herf.AppendFormat(@"{0}</a><br>", news.TitleHighLighter);
        herf.AppendFormat(@"<font size=-1>{0}</font>", news.Abstract);
        herf.AppendFormat(@"<br><font size=-1 color=#008000>{0} {1}K {2}</font>",
                          news.Url, news.Content.Length / 1024, news.Time.ToString("yyyy-MM-dd"));
        return(herf.ToString());
    }
Пример #3
0
        private void GetLine(TNews news, StringBuilder html)
        {
            html.Append("<div>");
            html.Append("<a id=dfs6 href='" + news.Url + "' target='_blank'>");
            html.Append("<font size=\"3\">" + news.Title + "</font>");
            html.Append("</a><br>");

            Uri uri  = new Uri(news.Url);
            int size = news.Content.Length;

            html.AppendFormat(news.Abstract);
            html.Append("<br>");
            html.AppendFormat(@"<font color=#008000>{0}/ {1} {2}</font>", uri.Host, size, news.Time.ToString("yyyy-M-d"));
        }
Пример #4
0
        public ActionResult SaveNews(EnumNewsType newsType, string newsDesc)
        {
            string Message = string.Empty;
            bool   Success = true;

            try
            {
                TNews news = _tNewsRepository.GetByType(newsType);
                if (news == null)
                {
                    news = new TNews();
                    news.SetAssignedIdTo(Guid.NewGuid().ToString());
                    news.NewsDesc    = newsDesc;
                    news.NewsType    = newsType.ToString();
                    news.DataStatus  = EnumDataStatus.New.ToString();
                    news.CreatedBy   = User.Identity.Name;
                    news.CreatedDate = DateTime.Now;
                    _tNewsRepository.Save(news);
                }
                else
                {
                    news.NewsDesc     = newsDesc;
                    news.DataStatus   = EnumDataStatus.Updated.ToString();
                    news.ModifiedBy   = User.Identity.Name;
                    news.ModifiedDate = DateTime.Now;
                    _tNewsRepository.Update(news);
                }

                Success = true;
                Message = "Sukses";
            }
            catch (Exception ex)
            {
                Success = false;
                Message = "Error :\n" + ex.GetBaseException().Message;
            }
            var e = new
            {
                Success,
                Message
            };

            return(Json(e, JsonRequestBehavior.AllowGet));
        }
Пример #5
0
        public static List <TNews> Search(String indexDir, String q, int pageLen, int pageNo, out int recCount)
        {
            string keywords = q;

            IndexSearcher search = new IndexSearcher(indexDir);

            q = GetKeyWordsSplitBySpace(q, new PanGuTokenizer());
            QueryParser queryParser = new QueryParser("contents", new PanGuAnalyzer(true));
            Query       query       = queryParser.Parse(q);

            QueryParser titleQueryParser = new QueryParser("title", new PanGuAnalyzer(true));
            Query       titleQuery       = titleQueryParser.Parse(q);

            BooleanQuery bq = new BooleanQuery();

            bq.Add(query, BooleanClause.Occur.SHOULD);
            bq.Add(titleQuery, BooleanClause.Occur.SHOULD);

            Hits hits = search.Search(bq);

            List <TNews> result = new List <TNews>();

            recCount = hits.Length();
            int i = (pageNo - 1) * pageLen;

            while (i < recCount && result.Count < pageLen)
            {
                TNews news = null;

                try
                {
                    news         = new TNews();
                    news.Title   = hits.Doc(i).Get("title");
                    news.Content = hits.Doc(i).Get("contents");
                    news.Url     = hits.Doc(i).Get("url");
                    String strTime = hits.Doc(i).Get("time");
                    news.Time = DateTime.ParseExact(strTime, "yyyyMMdd", null);


                    PanGu.HighLight.SimpleHTMLFormatter simpleHTMLFormatter =
                        new PanGu.HighLight.SimpleHTMLFormatter("<font color=\"red\">", "</font>");

                    PanGu.HighLight.Highlighter highlighter =
                        new PanGu.HighLight.Highlighter(simpleHTMLFormatter,
                                                        new Segment());

                    highlighter.FragmentSize = 50;

                    news.Abstract         = highlighter.GetBestFragment(keywords, news.Content);
                    news.TitleHighLighter = highlighter.GetBestFragment(keywords, news.Title);
                    if (string.IsNullOrEmpty(news.TitleHighLighter))
                    {
                        news.TitleHighLighter = news.Title;
                    }

                    //// 高亮显示设置
                    ////TermQuery tQuery = new TermQuery(new Term("contents", q));

                    //SimpleHTMLFormatter simpleHTMLFormatter = new SimpleHTMLFormatter("<font color=\"red\">", "</font>");
                    //Highlighter highlighter = new Highlighter(simpleHTMLFormatter, new QueryScorer(query));
                    ////关键内容显示大小设置
                    //highlighter.SetTextFragmenter(new SimpleFragmenter(50));
                    ////取出高亮显示内容
                    //Lucene.Net.Analysis.KTDictSeg.KTDictSegAnalyzer analyzer = new Lucene.Net.Analysis.KTDictSeg.KTDictSegAnalyzer();
                    //TokenStream tokenStream = analyzer.TokenStream("contents", new StringReader(news.Content));
                    //news.Abstract = highlighter.GetBestFragment(tokenStream, news.Content);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
                finally
                {
                    result.Add(news);
                    i++;
                }
            }

            search.Close();
            return(result);
        }