private string GeneratePreviewText(Query q, string text) { var scorer = new QueryScorer(q); Highlighter highlighter = new Highlighter(htmlFormatter, scorer); highlighter.TextFragmenter = new SimpleFragmenter(250); TokenStream stream = SearchEnvironment.DefaultAnalyzer.TokenStream("html_content", new StringReader(text)); return highlighter.GetBestFragments(stream, text, 4, "<br/>"); }
// This method takes a search term and a text as a parameter, and displays the text // with the search term in bold. public static void RealHighlighter(string searchTerm, string text) { TermQuery query = new TermQuery(new Term("mainText", searchTerm)); Lucene.Net.Search.Highlight.IScorer scorer = new QueryScorer(query); Highlighter highlighter = new Highlighter(scorer); System.IO.StringReader reader = new System.IO.StringReader(text); TokenStream tokenStream = new SimpleAnalyzer().TokenStream("mainText", reader); String[] toBePrinted = highlighter.GetBestFragments(tokenStream, text, 5); // 5 is the maximum number of fragments that gets tested foreach (var word in toBePrinted) { Console.Write(word); } }
// TEST METHOD FOR HIGHLIGHTING. public static void Highlighter() { string textTest = "I am a man that follows hell."; TermQuery queryTest = new TermQuery(new Term("", "hell")); Lucene.Net.Search.Highlight.IScorer scorer = new QueryScorer(queryTest); Highlighter highlighter = new Highlighter(scorer); System.IO.StringReader reader = new System.IO.StringReader(textTest); TokenStream tokenStream = new SimpleAnalyzer().TokenStream("field", reader); String[] toBePrinted = highlighter.GetBestFragments(tokenStream, textTest, 1); // 1 is the maximum number of fragments that gets tested foreach (var word in toBePrinted) { Console.WriteLine(word); } }
public static string GetOriginalHighlightedContents(SearchResult sr) { StringBuilder result = new StringBuilder("<html><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"><style>.highlight{background:yellow;}</style><body><font face=Arial size=5>"); string contents = sr.GetDocContents(); SimpleHTMLFormatter formatter = new SimpleHTMLFormatter("<span class=\"highlight\">", "</span>"); SimpleFragmenter fragmenter = new SimpleFragmenter(sr.FragmentSize); Highlighter hiliter = new Highlighter(formatter, new QueryScorer(sr.QueryParser.Parse(sr.Query))); hiliter.SetTextFragmenter(fragmenter); int numfragments = contents.Length / fragmenter.GetFragmentSize() + 1; TokenStream tokenstream = sr.Analyzer.TokenStream("contents", new StringReader(contents)); result.Append(hiliter.GetBestFragments(tokenstream, contents, numfragments, "...")); result.Append("</font></body></html>"); result.Replace("\n", "<br/>"); return result.ToString(); }
public static string GetHilitedContentsWithoutHeaders(SearchResult sr) { StringBuilder result = new StringBuilder("<font face=Arial size=5>"); string contents = sr.GetDocContents(); SimpleHTMLFormatter formatter = new SimpleHTMLFormatter("<span class=\"highlight\">", "</span>"); SimpleFragmenter fragmenter = new SimpleFragmenter(sr.FragmentSize); Highlighter hiliter = new Highlighter(formatter, new QueryScorer(sr.QueryParser.Parse(sr.Query))); hiliter.SetTextFragmenter(fragmenter); int numfragments = contents.Length / fragmenter.GetFragmentSize() + 1; TokenStream tokenstream = sr.Analyzer.TokenStream("contents", new StringReader(contents)); result.Append(hiliter.GetBestFragments(tokenstream, contents, numfragments, "...")); result.Append("</font>"); result.Replace("\n", "<br/>"); return result.ToString(); }
public static void Highlight(Document d, string query, Analyzer analyzer) { string contents = d.Get("contents"); SimpleHTMLFormatter formatter = new SimpleHTMLFormatter("<span class=\"highlight\"><b>", "</b></span>"); //SpanGradientFormatter formatter = new SpanGradientFormatter(10.0f, null, null, "#F1FD9F", "#EFF413"); //SimpleHTMLEncoder encoder = new SimpleHTMLEncoder(); SimpleFragmenter fragmenter = new SimpleFragmenter(250); Highlighter hiliter = new Highlighter(formatter, new QueryScorer(QueryParser.Parse(query, "contents", analyzer))); hiliter.SetTextFragmenter(fragmenter); int numfragments = contents.Length / fragmenter.GetFragmentSize() + 1;// +1 ensures its never zero. More than the required number of fragments dont harm. StringBuilder result = new StringBuilder("<html><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"><style>.highlight{background:yellow;}</style><head><title>Search Results - "); result.Append(d.Get("filename")); result.Append("</title></head><body><font face=Arial size=5>"); TokenStream tokenstream = analyzer.TokenStream("contents", new System.IO.StringReader(contents)); TextFragment[] frags = hiliter.GetBestTextFragments(tokenstream, contents, false, numfragments); foreach (TextFragment frag in frags) { if (frag.GetScore() > 0) { result.Append(frag.ToString() + "<br/><hr/><br/>"); } } string contentspath = System.IO.Path.Combine(System.Windows.Forms.Application.StartupPath, "contents.html"); result.Append("</font><a target=_self href=\"file:///"); result.Append(contentspath); result.Append("\">View Original Document...</a>"); result.Append("</body></html>"); result.Replace("\n", "<br/>"); string resultspath = System.IO.Path.Combine(System.Windows.Forms.Application.StartupPath, "results.html"); System.IO.File.WriteAllText(resultspath, result.ToString()); //webBrowser1.Url = new Uri("file:///" + resultspath); Highlighter hiliter2 = new Highlighter(formatter, new QueryScorer(QueryParser.Parse(query, "contents", analyzer))); hiliter2.SetTextFragmenter(fragmenter); TokenStream tokstr = analyzer.TokenStream(new System.IO.StringReader(contents)); StringBuilder htmlcontents = new StringBuilder("<html><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"><style>.highlight{background:yellow;}</style><body><font face=Arial size=5>"); htmlcontents.Append(hiliter2.GetBestFragments(tokstr, contents, numfragments, "...")); htmlcontents.Append("</font></body></html>"); htmlcontents.Replace("\n", "<br/>"); System.IO.File.WriteAllText(contentspath, htmlcontents.ToString()); }
public List<IndexResult> Search(string terms) { List<IndexResult> retObj = new List<IndexResult>(); var analyzer = new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_30); using (var searcher = new IndexSearcher(FSDirectory.Open(IndexDirectory))) { // parse the query, "text" is the default field to search var parser = new MultiFieldQueryParser(Lucene.Net.Util.Version.LUCENE_30, new[] { "text", "title", "urlkey", "searchterms" }, analyzer); Query query = parser.Parse(terms); TopDocs hits = searcher.Search(query, 200); SimpleFragmenter fragmenter = new SimpleFragmenter(80); QueryScorer scorer = new QueryScorer(query); Highlighter highlighter = new Highlighter(scorer); highlighter.TextFragmenter = fragmenter; for (int i = 0; i < hits.TotalHits; i++) { // get the document from index Document doc = searcher.Doc(hits.ScoreDocs[i].Doc); TokenStream stream = analyzer.TokenStream("", new StringReader(doc.Get("text"))); String sample = highlighter.GetBestFragments(stream, doc.Get("text"), 2, "..."); String title = doc.Get("title"); String urlkey = doc.Get("urlkey"); String type = doc.Get("type"); retObj.Add(new IndexResult() { Sample = sample, Title = title, Type = type, UrlKey = urlkey }); } return retObj; } }
// This method is printing out the message details given the index document. // NOTE: The field "mainText" must be stored in indexing level. Same goes for any // other field you want to search. private static void DisplayMessage(Document d, string searchTerm) { // THIS IS USED IN THE DATABASE INDEXic //Console.WriteLine("id: " + d.Get("id") + "\n" + "messageBox: " + d.Get("messageBox") + "\n" + "incoming: " + d.Get("incoming") + "\n" + "date: " + d.Get("date") + "\n" + "mainText: " + d.Get("mainText")); // THIS IS USED IN MY TEST FILES //Console.WriteLine("id: " + d.Get("id") + "\n" + "mainText: " + d.Get("mainText")); string text = d.Get("mainText"); TermQuery query = new TermQuery(new Term("mainText", searchTerm)); Lucene.Net.Search.Highlight.IScorer scorer = new QueryScorer(query); Highlighter highlighter = new Highlighter(scorer); System.IO.StringReader reader = new System.IO.StringReader(text); TokenStream tokenStream = new SimpleAnalyzer().TokenStream("mainText", reader); String[] toBePrinted = highlighter.GetBestFragments(tokenStream, text, 5); // 5 is the maximum number of fragments that gets tested foreach (var word in toBePrinted) { Console.Write(word); } Console.WriteLine("====================="); Console.ReadKey(); }
private void Search() { try { SearchProgressBar.Maximum = 11; ProgressLabel.Text = "Progress: Initialize Search ..."; Searcher searcher = new IndexSearcher(@"Canon\index"); Analyzer analyzer = new StandardAnalyzer(); ArrayList resultList = new ArrayList(); System.IO.StreamReader in_Renamed = new System.IO.StreamReader(new System.IO.StreamReader(System.Console.OpenStandardInput(), System.Text.Encoding.Default).BaseStream, new System.IO.StreamReader(System.Console.OpenStandardInput(), System.Text.Encoding.Default).CurrentEncoding); String line = QueryInputBox.Text; if (line.Length == - 1) return; ProgressLabel.Text = "Progress: Parsing Query ..."; Query query = QueryParser.Parse(line, "contents", analyzer); //int[] ix = qtm.GetTermFrequencies(); Hits hits = searcher.Search(query); SearchProgressBar.Increment(1); ProgressLabel.Text = "Progress: Searched. Analyzing results ..."; //QueryHighlightExtractor highlighter = new QueryHighlightExtractor(query, new WhitespaceAnalyzer(), "<B>", "</B>"); Highlighter highlighter = new Highlighter(new QueryScorer(query)); highlighter.SetTextFragmenter(new SimpleFragmenter(80)); int maxNumFragmentsRequired = 1; //int HITS_PER_PAGE = 10; for (int i = 0; i < 10; i++) { SearchProgressBar.Increment(1); ProgressLabel.Text = "Progress: Analyzing hit " + (i+1).ToString(); // get the document from index Document doc = hits.Doc(i); //SegmentReader ir = new SegmentReader(); //Lucene.Net.Index.TermFreqVector tfv = //tfv.GetTermFrequencies string score = hits.Score(i).ToString(); //Box += "Hit no. " + i + " scored: " + score + " occ: " + /*highlighter.tokenFrequency */ " best fragment: \n"; ResultSet a = new ResultSet(); a.BookName = doc.Get("path").Replace(@"c:\cscd\temp\",""); a.Score = hits.Score(i); a.numberOfHits = hits.Length(); // get the document filename // we can't get the text from the index //because we didn't store it there //so get it from archive string path = doc.Get("path"); string name = GetInternalName(path); PaliReaderUtils.AalekhDecoder.UnzipFromZipLibrary(name); path = System.IO.Directory.GetCurrentDirectory() + @"\Work\" + name + ".htm"; string plainText = ""; //load text from zip archive temporarily using (StreamReader sr = new StreamReader(path, System.Text.Encoding.Default)) { plainText = parseHtml(sr.ReadToEnd()); } //-------------------------------Highlighter Code 1.4 TokenStream tokenStream = analyzer.TokenStream(new StringReader(plainText)); a.textFragment = highlighter.GetBestFragments(tokenStream, plainText, maxNumFragmentsRequired, "..."); if(File.Exists(path)) File.Delete(path); //------------------------------- resultList.Add(a); } SearchProgressBar.Value = 0; searcher.Close(); ssr = new ShowSearchResults(/*Box*/resultList); //this.Hide(); ssr.OpenBookEvent += new ShowSearchResults.OpenBook(this.TriggerOpenBook); ssr.Closing += new System.ComponentModel.CancelEventHandler(this.Closing_ResultWindow); this.Hide(); ssr.ShowDialog(); } catch (System.Exception e) { MessageBox.Show(" caught a " + e.GetType() + "\n with message: " + e.Message); } }
private SearchResult ExecuteQuery(string[] metaData, int resultOffset, int resultLength, Query query) { var startTime = DateTime.Now; var ticks = DateTime.Now.ToUniversalTime().Ticks; Query publishStartQuery = NumericRangeQuery.NewLongRange("publishStart", null, ticks, true, false); Query publishStopQuery = NumericRangeQuery.NewLongRange("publishStop", ticks, null, false, true); var booleanQuery = new BooleanQuery { {query, Occur.MUST}, {publishStartQuery, Occur.MUST}, {publishStopQuery, Occur.MUST} }; var scoreDocs = _searcher.Search(booleanQuery, null, MaxHits, Sort.RELEVANCE).ScoreDocs; var result = new SearchResult {NumberOfHits = scoreDocs.Length}; // Create highlighter IFormatter formatter = new SimpleHTMLFormatter("<span class=\"search-highlight;\">", "</span>"); var fragmenter = new SimpleFragmenter(120); var scorer = new QueryScorer(query); var highlighter = new Highlighter(formatter, scorer) {TextFragmenter = fragmenter}; if (resultOffset < scoreDocs.Length) { var resultUpperOffset = resultOffset + resultLength; if (resultUpperOffset > scoreDocs.Length) { resultUpperOffset = scoreDocs.Length; } for (var i = resultOffset; i < resultUpperOffset; i++) { var doc = scoreDocs[i]; var document = _searcher.Doc(doc.Doc); var content = document.Get("content"); var excerpt = ""; if (content != null) { var stream = _analyzer.TokenStream("", new StringReader(document.Get("content"))); excerpt = highlighter.GetBestFragments(stream, document.Get("content"), 2, "..."); } Guid pageId; (document.Get("pageId") ?? string.Empty).TryParseGuid(out pageId); var hit = new SearchHit { PageId = pageId, Path = document.Get("path"), Title = document.Get("title"), Excerpt = excerpt }; foreach (var key in metaData) { hit.MetaData.Add(key, document.Get(key)); } result.Hits.Add(hit); } } var timeTaken = DateTime.Now - startTime; result.SecondsTaken = timeTaken.TotalSeconds; return result; }
public static DataTable searchPitanja(string pretraga) { DataTable ResultsPitanja = new DataTable(); // create the searcher // index is placed in "index" subdirectory string indexDirectory = "J:/Triglav_Web_App/Triglav/Web/Lucene/Pitanja"; var analyzer = new StandardAnalyzer(Version.LUCENE_30); IndexSearcher searcher = new IndexSearcher(FSDirectory.Open(indexDirectory)); // parse the query, "text" is the default field to search var parser = new MultiFieldQueryParser(Version.LUCENE_30, new[] { "Naslov", "Sadrzaj", "Tagovi" }, analyzer); //var parser = new QueryParser(Version.LUCENE_30, "Sadrzaj", analyzer); Query query = parser.Parse(pretraga); //// create the result DataTable ResultsPitanja.Columns.Add("id", typeof(Int32)); ResultsPitanja.Columns.Add("Naslov", typeof(string)); ResultsPitanja.Columns.Add("Sadrzaj", typeof(string)); ResultsPitanja.Columns.Add("Tagovi", typeof(string)); ResultsPitanja.Columns.Add("DatumKreiranja", typeof(DateTime)); ResultsPitanja.Columns.Add("DatumZadnjeIzmjene", typeof(DateTime)); ResultsPitanja.Columns.Add("DatumZadnjeAktivnosti", typeof(DateTime)); ResultsPitanja.Columns.Add("DatumZatvaranjaPosta", typeof(DateTime)); ResultsPitanja.Columns.Add("PrihvaceniOdgovori", typeof(Int32)); ResultsPitanja.Columns.Add("BrojOdgovora", typeof(Int32)); ResultsPitanja.Columns.Add("BrojKomentara", typeof(Int32)); ResultsPitanja.Columns.Add("BrojOmiljenih", typeof(Int32)); ResultsPitanja.Columns.Add("BrojPregleda", typeof(Int32)); ResultsPitanja.Columns.Add("BrojPoena", typeof(Int32)); ResultsPitanja.Columns.Add("VlasnikID", typeof(Int32)); ResultsPitanja.Columns.Add("VlasnikNadimak", typeof(string)); ResultsPitanja.Columns.Add("PromijenioID", typeof(Int32)); ResultsPitanja.Columns.Add("RoditeljskiPostID", typeof(Int32)); //Results.Columns.Add("PodKategorija", typeof(Int32)); ResultsPitanja.Columns.Add("PostVrsta", typeof(Int32)); // ResultsPitanja.Columns.Add("SlikaURL", typeof(string)); ResultsPitanja.Columns.Add("temp", typeof(string)); ResultsPitanja.Columns.Add("Likes", typeof(Int32)); ResultsPitanja.Columns.Add("Unlikes", typeof(Int32)); ResultsPitanja.Columns.Add("Sazetak", typeof(string)); ResultsPitanja.Columns.Add("BrojRangiranja", typeof(Int32)); ResultsPitanja.Columns.Add("PrihvacenaIzmjena", typeof(Int32)); ResultsPitanja.Columns.Add("Podnaslov", typeof(string)); ResultsPitanja.Columns.Add("Broj.Razgovora", typeof(Int32)); ResultsPitanja.Columns.Add("sample", typeof(string)); // search TopDocs hits = searcher.Search(query, 5); //E this.total = hits.TotalHits; // create highlighter IFormatter formatter = new SimpleHTMLFormatter("<span style=\"font-weight:bold; background-color: #e5ecf9; \">", "</span>"); SimpleFragmenter fragmenter = new SimpleFragmenter(80); QueryScorer scorer = new QueryScorer(query); Highlighter highlighter = new Highlighter(formatter, scorer); highlighter.TextFragmenter = fragmenter; for (int i = 0; i < hits.ScoreDocs.Count(); i++) { // get the document from index Document doc = searcher.Doc(hits.ScoreDocs[i].Doc); TokenStream stream = analyzer.TokenStream("", new StringReader(doc.Get("Sadrzaj"))); String sample = highlighter.GetBestFragments(stream, doc.Get("Sadrzaj"), 3, "..."); //String path = doc.Get("path"); // create a new row with the result data DataRow rowPitanja = ResultsPitanja.NewRow(); rowPitanja["id"] = doc.Get("id"); rowPitanja["Naslov"] = doc.Get("Naslov"); rowPitanja["Sadrzaj"] = sample; //doc.Get("Sadrzaj"); rowPitanja["Tagovi"] = doc.Get("Tagovi"); rowPitanja["DatumKreiranja"] = doc.Get("DatumKreiranja"); rowPitanja["DatumZadnjeIzmjene"] = doc.Get("DatumZadnjeIzmjene"); rowPitanja["DatumZadnjeAktivnosti"] = doc.Get("DatumZadnjeAktivnosti"); //row["DatumZatvaranjaPosta"] = doc.Get("DatumZatvaranjaPosta"); rowPitanja["PrihvaceniOdgovori"] = doc.Get("PrihvaceniOdgovori"); rowPitanja["BrojOdgovora"] = doc.Get("BrojOdgovora"); rowPitanja["BrojKomentara"] = doc.Get("BrojKomentara"); rowPitanja["BrojOmiljenih"] = doc.Get("BrojOmiljenih"); rowPitanja["BrojPregleda"] = doc.Get("BrojPregleda"); rowPitanja["BrojPoena"] = doc.Get("BrojPoena"); //row["VlasnikID"] = doc.Get("VlasnikID"); rowPitanja["VlasnikNadimak"] = doc.Get("VlasnikNadimak"); //row["PromijenioID"] = doc.Get("PromijenioID"); //row["RoditeljskiPostID"] = doc.Get("RoditeljskiPostID"); //row["PodKategorija"] = doc.Get("PodKategorija"); rowPitanja["PostVrsta"] = doc.Get("PostVrsta"); //rowPitanja["SlikaURL"] = doc.Get("SlikaURL"); //row["temp"] = doc.Get("temp"); rowPitanja["Likes"] = doc.Get("Likes"); rowPitanja["Unlikes"] = doc.Get("Unlikes"); rowPitanja["Sazetak"] = doc.Get("Sazetak"); rowPitanja["BrojRangiranja"] = doc.Get("BrojRangiranja"); rowPitanja["PrihvacenaIzmjena"] = doc.Get("PrihvacenaIzmjena"); rowPitanja["Podnaslov"] = doc.Get("Podnaslov"); //row["Broj.Razgovora"] = doc.Get("Broj.Razgovora"); //rowPitanja["sample"] = sample; ResultsPitanja.Rows.Add(rowPitanja); } searcher.Dispose(); return ResultsPitanja; }
private string Highlight(Highlighter highlighter, string description) { description = SimpleHTMLEncoder.HtmlEncode(description); if (highlighter != null) { var stream = _analyzer.TokenStream("", new StringReader(description)); var sample = highlighter.GetBestFragments(stream, description, 2, "..."); if (!string.IsNullOrEmpty(sample)) { return sample; } } return description; }
/// <summary> /// �������� /// </summary> /// <returns></returns> private string GetALL_BACKDAT() { ClassSeachALL nClass = new ClassSeachALL(); //�������� RSK ALL = new RSK(); ArrayList cNew = new ArrayList(); //���������ڵ�õ������� �ϲ���� ������������ ���������ҳ�� ����һ����� foreach (string aabb in nRSD) { RSK cc = nClass.RTSTR2RSK(aabb); //���ݺϲ���ALL ALL.ALLNum = ALL.ALLNum + cc.ALLNum; foreach (OneRs ncb in cc.rs) { cNew.Add(ncb); } } ALL.ANum = 0; ALL.BNum = 0; ALL.rs = (ArrayList)cNew.Clone(); //�õ����ݵĸ��� //�õ����������� int all_a_num = ALL.ALLNum; //��ʼ int all_a_ws = A_WS; //���� int ALL_a_wl = A_WL; //���HTML��ʽ�����ݿ� �滻ģ���е����ݿռ� int CL = A_WS + A_WL; if (CL > ALL.rs.Count) { CL = ALL.rs.Count; } // "/s?wd=TYPE|title|body|type1|type2&ws=0&wl=10"; string[] FEFE = A_WD.Split('|'); QueryParser parser = new QueryParser("E", ClassST.OneAnalyzer); Query query = parser.Parse(FEFE[1] + " " + FEFE[2]); //Highlighter highlighter = new Highlighter(new QueryScorer(query)); // Highlighter highlighter = new Highlighter(); Highlighter highlighter = new Highlighter(new SimpleHTMLFormatter("<font color=\"red\">", "</font>"), new QueryScorer(query)); highlighter.TextFragmenter = new SimpleFragmenter(20); StringBuilder GHX = new StringBuilder(); for (int p = A_WS; p < CL; p++) { OneRs ncb = (OneRs)ALL.rs[p]; StringBuilder Tmp = new StringBuilder(); string N_D = newz_code.CODE2CN(ncb.D); string N_Url = newz_code.CODE2CN(ncb.url); string N_A = newz_code.CODE2CN(ncb.A); TokenStream tokenStream = ClassST.OneAnalyzer.TokenStream("D", new System.IO.StringReader(N_D)); System.String result = highlighter.GetBestFragments(tokenStream, N_D, 100, "..."); // string result = N_D; Tmp.Append(" <tr>\r\n"); Tmp.Append(" <td height=\"66\" scope=\"col\"><table width=\"95%\" height=\"78\" border=\"0\" cellpadding=\"0\" cellspacing=\"1\">\r\n"); Tmp.Append(" <tr>\r\n"); Tmp.Append(" <td scope=\"col\"><div align=\"left\"><a href=\"" + N_Url + "\" target=\"_blank\"><span class=\"STYLE17\">" + N_A + "</span></a></div></td>\r\n"); Tmp.Append(" </tr>\r\n"); Tmp.Append(" <tr>\r\n"); Tmp.Append(" <td><span class=\"STYLE18\">"); Tmp.Append(result); Tmp.Append("</span></td>\r\n"); Tmp.Append(" </tr>\r\n"); Tmp.Append(" <tr>\r\n"); Tmp.Append(" <td><a href=\"" + N_Url + "\" target=\"_blank\"><span class=\"STYLE19\">" + N_Url + "</span></a></td>\r\n"); Tmp.Append(" </tr>\r\n"); Tmp.Append(" </table><p> </p></td>\r\n"); // Tmp.Append(" <p> </p>\r\n"); Tmp.Append(" </tr>\r\n"); GHX.Append(Tmp.ToString()); } string NewTable = "<table width=\"95%\" height=\"152\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\r\n"; NewTable = NewTable + GHX.ToString(); NewTable = NewTable + "</table>\r\n"; //������ string WebHtml = ClassST.ModelHTM.Replace("<%HTTP://ZD4004.BLOG.163.COM%>", NewTable); // // "/s?wd=TYPE|title|body|type1|type2&ws=0&wl=10"; //string[] FEFE = A_WD.Split('|'); //ѡ���� WebHtml = WebHtml.Replace("<%http://blog.163.com/zd4004/%>", ClassST.GetMainTypeListHtm(FEFE[0], FEFE[2])); //������ WebHtml = WebHtml.Replace("<%HTTP://BLOG.163.COM/ZD4004_1%>", ClassST.GetBoxListDat1(FEFE[0], FEFE[3], FEFE[4])); WebHtml = WebHtml.Replace("<%HTTP://BLOG.163.COM/ZD4004_2%>", ClassST.GetBoxListDat2(FEFE[0], FEFE[3], FEFE[4])); //ҳ����ʾ WebHtml = WebHtml.Replace("<%HTTP://BLOG.163.COM/ZD4004_URL%>", ClassST.GetPageNumHTML("/s?wd=" + A_WD + "&", all_a_num, all_a_ws, ALL_a_wl)); //���������Ŀ string KPP = "�������� "; if (all_a_ws + ALL_a_wl < all_a_num) { int ssrr = all_a_ws + ALL_a_wl; int all_a_wsn = all_a_ws + 1; KPP = KPP + "" + all_a_num.ToString() + " ����� ���� " + all_a_wsn.ToString() + " - " + ssrr.ToString() + " ��"; } else { int ssrr = all_a_num; int all_a_wsn = all_a_ws + 1; KPP = KPP + "" + all_a_num.ToString() + " ����� ���� " + all_a_wsn.ToString() + " - " + ssrr.ToString() + " ��"; } WebHtml = WebHtml.Replace("<%HTTP://BLOG.163.COM/ZD4004_NUM%>", KPP); return WebHtml; }