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

简介: 经过接近半个月的努力,今天我总算完成了博客园找找看功能的大部分实现,说实话,干编程真是费脑细胞啊。我本着不能白干的原则来描述一下我的本地模拟博客园找找看功能的实现。     首先我先说明一下我采用的结构,采用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月前
|
人工智能 算法 计算机视觉
【01】opencv项目实践第一步opencv是什么-opencv项目实践-opencv完整入门以及项目实践介绍-opencv以土壤和水滴分离的项目实践-人工智能AI项目优雅草卓伊凡
【01】opencv项目实践第一步opencv是什么-opencv项目实践-opencv完整入门以及项目实践介绍-opencv以土壤和水滴分离的项目实践-人工智能AI项目优雅草卓伊凡
394 63
【01】opencv项目实践第一步opencv是什么-opencv项目实践-opencv完整入门以及项目实践介绍-opencv以土壤和水滴分离的项目实践-人工智能AI项目优雅草卓伊凡
|
11月前
|
人工智能 弹性计算 运维
云端问道7期方案教学-使用操作系统智能助手OS Copilot轻松运维与编程
本文介绍了阿里云基础软件团队推出的操作系统智能助手 OS Copilot,旨在解决 Linux 开发与运维中的痛点。OS Copilot 基于大模型和操作系统领域知识构建,支持自然语言问答、命令辅助执行、系统运维优化及代码生成等功能,极大降低了学习成本和工作量。文章详细阐述了其产品架构、典型应用场景以及实验反馈渠道,帮助用户更高效地进行系统管理和编程。目前该产品处于公测阶段,免费提供给阿里云 ECS 实例和 Alinux 3 系统用户使用。
181 1
|
人工智能 自然语言处理 语音技术
智能语音交互:AI如何重塑人际沟通###
【10月更文挑战第22天】 本文旨在探讨智能语音交互技术如何深刻改变我们的人际沟通方式,从历史沿革、技术原理、应用领域到未来趋势,全面剖析这一AI技术的魅力与影响。通过生动实例与通俗语言,揭示智能语音交互背后的科技力量,以及它如何让沟通更自然、高效,同时引发关于隐私、伦理等问题的深思。 ###
478 4
|
安全 数据安全/隐私保护 Windows
不同电脑快速、实时传输数据的便捷方法
本文介绍多台Windows电脑之间不用软件、不用数据线的文件共享、数据传输方法~
792 1
不同电脑快速、实时传输数据的便捷方法
|
存储
【计算机系统结构】堆栈、累加、通用寄存器型机器对比
【计算机系统结构】堆栈、累加、通用寄存器型机器对比
821 0
|
机器学习/深度学习 固态存储 算法
SSD没有错付 | SSD改进版本来啦!PSSD携实时性与高精度归来!
SSD没有错付 | SSD改进版本来啦!PSSD携实时性与高精度归来!
566 0
SSD没有错付 | SSD改进版本来啦!PSSD携实时性与高精度归来!
|
机器学习/深度学习 SQL 人工智能
本科生60行代码教你手搓GPT大模型,技术介绍堪比教程(1)
本科生60行代码教你手搓GPT大模型,技术介绍堪比教程
495 0
|
数据挖掘 定位技术 双11
解决方案应用实例 |依靠阿里云数据中台,九阳突破转型瓶颈
2020年的天猫618,首次在大型活动中尝鲜阿里云数据中台零售行业解决方案的九阳,打了一场漂亮的仗。天猫618开场当天,九阳免洗豆浆机成交同比暴增230%,6月16日0点40分,天猫销售额突破2300万,同比超过2019年全天,截至当晚23:30,成交额已经超过去年三天总和。
674 0
解决方案应用实例 |依靠阿里云数据中台,九阳突破转型瓶颈
|
机器学习/深度学习 传感器 算法
【WSN定位】基于chan、taylor算法实现移动基站无源定位附matlab代码
【WSN定位】基于chan、taylor算法实现移动基站无源定位附matlab代码
|
弹性计算 Linux 数据安全/隐私保护
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
21076 2
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同