Пример #1
0
 static string ProcessQuery(string[] query)
 {
     /* 对query进行分词 */
     List<string> query_words = new List<string>();
     PanGu.Segment.Init();
     Segment seg = new Segment();
     foreach (string q in query)
     {
         ICollection<WordInfo> words = seg.DoSegment(q);
         foreach (WordInfo wi in words)
         {
             if (!query_words.Contains(wi.Word))
                 query_words.Add(wi.Word);
         }
     }
     /* 检索出符合条件的docIds */
     MongodbAccess mongo = new MongodbAccess();
     List<ObjectId> docIds = mongo.GetDocIDByQuery(query_words);
     docIds = SortResult(docIds, query_words);
     List<DocUrlAbstractResult> result = GetResult(docIds);
     /*
     foreach (DocUrlAbstractResult duar in result)
     {
         Console.WriteLine("{0}\n\t{1}", duar.title, duar.url);
     }
      * */
     StringBuilder strbuilder = new StringBuilder();
     foreach (DocUrlAbstractResult duar in result)
     {
         strbuilder.Append(String.Format(
             "<li><div><span><a href='{2}' target='_blank' class='link'>{0}<a></span><br/><span class='abstract'>{1}</span><br/><span class='url'>{2}</span></div></li>",
             duar.title, duar.abst, duar.url));
     }
     if (strbuilder.Length == 0)
     {
         strbuilder.Append("No pages mathch the query.");
     }
     return "<ol>" + strbuilder.ToString() + "</ol>";
 }