仿照博客园网站的找找看功能实现 预览

mac2022-07-05  32

      经过接近半个月的努力,今天我总算完成了博客园找找看功能的大部分实现,说实话,干编程真是费脑细胞啊。我本着不能白干的原则来描述一下我的本地模拟博客园找找看功能的实现。

    首先我先说明一下我采用的结构,采用Lucene.net 2.9 作为全文检索的工具,并配合盘古分词进行中文分词。其实我当时是通过NuGet获取到的Lucene.net 3.0 的最新版本,但是和盘古分词一起使用的时候出现了各种问题,无奈之下,只能采用Lucene.net 2.9,如果各位有更好的中文检索方案,可以介绍一下。

   网站的结构我就不说了,在前面的博客中我都介绍了,这里的重点就是Lucene.net。我通过这次认识到了一个问题,千万不要以为可以使用Lucene.net建立索引就说你掌握了Lucene.net,其实每个框架包含的内容都是很多的。不是我们表面上看到的那么简单,希望大家不要浮躁,起码我就有点浮躁。

   通过Lucene.net进行查询,首先就是要建立索引,我这里建立了一个Windows 服务项目,用来承载自动化的定时执行创建索引的任务,定时框架采用的就是Quartz.net,具体步骤我就不细说了,源码可以在codeplex上下载到。

   建立了索引以后就是要进行查询,说实话,在建立索引的过程中倒是没有遇到太大的问题,但是在通过Lucene.net进行搜索的时候遇到的问题可是不少,有机会我要总结一下了。其中我遇到了一个我从来没有遇到的问题,我在查询的时候,搜索到的结果竟然全部是相同的,这个我会慢慢找解决方法。我在搜索界面中采用的是分部视图的形式呈现,所以我个人感觉有更好的可重用性。

1 <div id="main"> 2 <div id="searchResult"> 3 <div style="clear: both"> 4 </div> 5 <div id="forflow"> 6 @{ 7 Html.RenderPartial("~/views/search/zzk.cshtml", blogList); 8 9 } 10 </div> 11 </div> 12 </div>

分部视图页面代码部分。

1 @using Models 2 @model IList<Models.BlogInfo> 3 @{ 4 IList<Models.BlogInfo> blogList = Model as IList<Models.BlogInfo>; 5 } 6 @{ 7 if (blogList == null) 8 { 9 <div id="empty_result"> 10 <img src="/images/empty-result.jpg"> 11 <br> 12 抱歉!没有找到您搜索的相关内容。<br> 13 建议您:<br> 14 <ul> 15 <li>检查输入的关键词是否正确;</li> 16 <li>向园子的服务人员<a href="http://space.cnblogs.com/forum/public">反馈问题</a>;</li> 17 <li>去<a href="http://q.cnblogs.com/">博问</a>寻求园友的的帮助。</li> 18 </ul> 19 </div> 20 } 21 else 22 { 23 foreach (BlogInfo blogInfo in blogList) 24 { 25 <div class="searchItem"> 26 <h3 class="searchItemTitle"> 27 <a href="@blogInfo.LinkUrl" target="_blank"><strong>@blogInfo.Title</strong></a> 28 </h3> 29 <span class="searchCon">@blogInfo.BlogContent...</span> 30 <div class="searchItemInfo"> 31 <span class="searchItemInfo-userName">@blogInfo.AuthorID</span> 32 <span class="searchItemInfo-publishDate">@blogInfo.PublishTime</span> 33 <span class="searchItemInfo-views">浏览(50000)</span> 34 </div> 35 <div class="searchItemInfo"> 36 <span class="searchURL">@blogInfo.LinkUrl</span> 37 </div> 38 </div> 39 40 } 41 42 43 } 44 45 }

 

 

 

因为我是仿照博客园创建的这个项目,所以界面当然还是选择博客园的官方界面.

 

首先展示一下搜索主界面。

。然后展示一下,搜索的详细界面。我遇到的问题就在这里出现的。

 

总结一下,

千万不要对自己的能力估计太高,因为每个项目都有独特性,都会出现各种问题有一点成绩我们就要自我安慰一下,毕竟前方的路不知在何方,安慰一下自己,继续上路千万不要浮躁,原理性的东西更能带给我们处理问题的最好办法。知其然更要知其所以然

 

转载于:https://www.cnblogs.com/jiagoushi/archive/2013/01/05/2846920.html

最新回复(0)