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

简介: 经过接近半个月的努力,今天我总算完成了博客园找找看功能的大部分实现,说实话,干编程真是费脑细胞啊。我本着不能白干的原则来描述一下我的本地模拟博客园找找看功能的实现。     首先我先说明一下我采用的结构,采用Lucene.net 2.9 作为全文检索的工具,并配合盘古分词进行中文分词。

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

    首先我先说明一下我采用的结构,采用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 }

 

 

 

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

 

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

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

 

总结一下,

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

 

我又回来了,回到了技术最前线,
相关文章
|
11月前
|
数据库
【博客项目】—登录功能实现( 四)
【博客项目】—登录功能实现( 四)
|
11月前
|
JSON 小程序 前端开发
微信小程序(十四)小程序自定义弹窗组件
上一篇中说的是小程序自带的弹窗组件,今天,我们来试试小程序的自定义组件,我们自定义一个带确定取消的弹窗组件。 首先,放一下,最终的效果图:
322 0
|
小程序
微信小程序如何实现多图上传及预览删除
微信小程序如何实现多图上传及预览删除
123 0
|
自然语言处理 JavaScript 前端开发
蓝桥杯 —— Web前端(功能实现类)【标题即题目链接,点击查看具体要求】
蓝桥杯 —— Web前端(功能实现类)【标题即题目链接,点击查看具体要求】
133 0
|
应用服务中间件
个人软件思维导图介绍。下载在以后的博客中。本博客是展示软件页面。(二)
个人软件思维导图介绍。下载在以后的博客中。本博客是展示软件页面。
101 0
个人软件思维导图介绍。下载在以后的博客中。本博客是展示软件页面。(二)
|
IDE JavaScript 前端开发
个人软件思维导图介绍。下载在以后的博客中。本博客是展示软件页面。(一)
个人软件思维导图介绍。下载在以后的博客中。本博客是展示软件页面。
120 0
个人软件思维导图介绍。下载在以后的博客中。本博客是展示软件页面。(一)
|
数据处理 C#
基于C#的ArcEngine二次开发39:GP工具的使用--界面、参数及示例代码
基于C#的ArcEngine二次开发39:GP工具的使用--界面、参数及示例代码
基于C#的ArcEngine二次开发39:GP工具的使用--界面、参数及示例代码
怎么添加CSDN博客打赏功能及自定义模块
怎么添加CSDN博客打赏功能及自定义模块
162 0
怎么添加CSDN博客打赏功能及自定义模块
|
数据采集 搜索推荐 Shell
Hexo博客功能扩展 - 菜单,SEO以及作者信息
Hexo博客功能扩展 - 菜单,SEO以及作者信息
210 0
|
JavaScript 前端开发
【全网最全的博客美化系列教程】07.添加一个分享的按钮吧
全网最全的博客美化系列教程相关文章目录 【全网最全的博客美化系列教程】01.添加Github项目链接 【全网最全的博客美化系列教程】02.添加QQ交谈链接 【全网最全的博客美化系列教程】03.给博客添加一只萌萌哒的小仓鼠 【全网最全的博客美化系列教程】04.
1608 0