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()); }
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()); }
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")); }
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)); }
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); }