用MVC2写多引擎搜索

搜索引擎可以帮助我们找到需要的东西,但是选择搜索引擎成了一种喜好和赌博,应为你不知道你选的那个搜索引擎中是不是有你需要的答案,当你寻找无果时,换一个搜索引擎查找时就会遇到大量的重复信息,这个时候浪费了不少时间在这些无效的搜索结果中,如果再到第三个引擎那里去的话,会有更多的垃圾信息。

本人因为这个问题,又恰巧在学习MVC2的开发,就尝试做了一个多引擎搜索(必应、谷歌、百度),同时系统会帮忙剔除重复项,这样就最大化的获得我想要的资讯。

废话说了不少了,先给大家一个地址,去体验一下:http://www.chaoran44.com

  用MVC2写多引擎搜索_第1张图片

接着说说实现吧,其实没什么技术含量,都不好意思拿出来,如果有高手来看,请指点。

整个程序工作原理就是根据用户请求从三个搜索引擎那里获得数据,然后从HTML代码中分离出需要的数据,然后按照URL剔除重复数据。顺便说一下这三个搜索引擎中必应的页面代码可读性最好,谷歌的页面代码那个叫乱啊,只有百度还在用table布局。程序类图如下

用MVC2写多引擎搜索_第2张图片

有了数据,接着就是输出了,我爱死MVC了,输出界面那个叫方便啊,看一下下面的代码就明白了,没什么好说的。我这里顺带用了MVC的AJAX,我觉得现在的搜索引擎搜索时平凡的翻页好麻烦的,我就直接把新的页面加载在之前的页面后面。

 

代码
   
   
1 <% @ Control Language = " C# " Inherits = " System.Web.Mvc.ViewUserControl<CRSearch.Models.ResultModel> " %>
2   < link href ="http://www.cnblogs.com/Content/Seacrch.css" rel ="stylesheet" type ="text/css" />
3   < div class ="Page" >
4 < div >
5 &nbsp&nbsp &nbsp <% : Model.NowPage.ToString() %> &nbsp
6 </ div >
7 < div class ="Page2" >
8 重复数量
9 <% : Model.RepeatItemCount %>
10 &nbsp&nbsp Baidu耗时
11 <% : Model.BiauSpan %>
12 &nbsp&nbsp Google耗时
13 <% : Model.GoogleSpan %>
14 &nbsp&nbsp Bing耗时
15 <% : Model.BingSpan %>
16 &nbsp&nbsp Analyze耗时
17 <% : Model.AnalyzeSpan %>
18 </ div >
19   </ div >
20   < div class ="SEntry" >
21 <%
22 List < CRSearch.Models.ResultEntry > items = Model.ResultEntrys;
23 foreach (var item in items)
24 { %>
25 <% if (item.FilchOK == false )
26 {
27 new HtmlString(item.Description);
28 continue;
29 }
30 %>
31 < img alt ="<%: item.Source %>" src ="/img/<%: item.Source %>.png" height ="14px" width ="43px" />
32 < a href ="<%: item.Url %>" target ="_blank" class ="SLi" >
33 <% : new HtmlString(item.Caption) %>
34 </ a >
35 <% foreach (var repItem in item.RepeatEntry)
36 { %>
37 < br />
38 &nbsp&nbsp&nbsp&nbsp < img alt ="<%: repItem.Source %>" src ="/img/<%: repItem.Source %>.png"
39 height ="14px" width ="43px" />
40 < a href ="<%: repItem.Url %>" target ="_blank" class ="REntry" >
41 <% : new HtmlString(repItem.Caption) %>
42 </ a >
43 <% } %>
44 < br />
45 <% : new HtmlString( item.Description) %>
46 < br />
47 < br />
48 <% } %>
49   </ div >
50   < div class ="Page" >
51 <%
52 using (Ajax.BeginForm( " SearchKey " ,
53 new AjaxOptions { UpdateTargetId = " S " + Model.NowPage, LoadingElementId = " Loading " , HttpMethod = " Post " }))
54 { %>
55
56 <% : Html.Hidden ( " key " , Model.Key ) %>
57 <% -- < %: Html.TextBox( " page " , Model.NowPage) %> --%>
58 < input type ="hidden" id ="page" name ="page" value ="<%: Model.NowPage %>" />
59 <% : Html.Hidden ( " keyid " , Model.KeyID ) %>
60 < input type ="submit" value ="继续搜索" />
61 <% } %>
62   </ div >
63   < div id ="S<%: Model.NowPage %>" >
64 < div class ="Page" id ="Loading" style ="display: none" >
65 搜索中...
66 </ div >
67 </ div >

 

你可能感兴趣的:(mvc)