毕业论文
计算机论文
经济论文
生物论文
数学论文
物理论文
机械论文
新闻传播论文
音乐舞蹈论文
法学论文
文学论文
材料科学
英语论文
日语论文
化学论文
自动化
管理论文
艺术论文
会计论文
土木工程
电子通信
食品科学
教学论文
医学论文
体育论文
论文下载
研究现状
任务书
开题报告
外文文献翻译
文献综述
范文
C#+Ajax站内搜索引擎系统的设计与实现+Lucene(3)
引用
检索
图3 代码结构
2、索引生成模块
这部分包含对文本的索引生成以及对数据库数据的索引生成,下面只对数据库索引生成的关键代码进行介绍:
下面这段代码实现对数据库里存储的记录创建索引。主要通过Lucene提供的方法来协助实现。
首先通过标准分词定义了一个索引写入器
IndexWriter writer = new IndexWriter(indexDir, new StandardAnalyzer(), true);
在创建索引库时,会合并多个Segments文件。此方式有助于减少索引文件数量,减少同时打开的文件数量。
writer.SetUseCompoundFile(false);
//删除以前生成的索引文件。
System.IO.Directory.Delete(iDexDir,true);
#endregion
DateTime start = DateTime.Now;
DoIndexByDB(writer);//
DateTime end = DateTime.Now;
int docNum = writer.DocCount();
Console.WriteLine("Index Finished. {0} Documents takes {1} second.",
docNum, ((TimeSpan)(end - start)).TotalSeconds);
writer.Optimize();
writer.Close();
使用Lucene提供的方法对数据库中的每条记录建立索引实现如下:
Document doc = new Document();
Console.WriteLine("Indexing {0} ", row["title"].ToString());
doc.Add(Field.Text("contents", row["content"].ToString()));
doc.Add(Field.Keyword("title", row["title"].ToString()));
doc.Add(Field.Keyword("mata",row["mata"].ToString()));
doc.Add(Field.Keyword("CreateDate",row["CreateDate"].ToString()));
doc.Add(Field.Keyword("Url",row["Url"].ToString()));
doc.Add(Field.Keyword("ID",row["ID"].ToString()));
writer.AddDocument(doc);
3、页面查询模块
这部分主要完成的功能是获取前台表单中输入的关键字,在程序中获取查询结果,最后把列表显示在前台页面。
Ajax在此部分中被使用到,它完成的功能是部分刷新页面,不需整个页面的重新加载。为了方便的在程序中使用Ajax,此系统引用了封装完善的Ajax类库。在程序中注册后,在html里就可以使用Javascript来调用后台的程序。选取部分代码来说明:
首先在页面后台程序中进行Ajax注册。
如果前台Javascript需要调用某个方法,那就在那个函数前加上[AjaxPro.AjaxMethod],表示此方法属于ajax应用。
其中,前台所存在的文字的代码如下:
StringBuilder sb = new StringBuilder();
sb.Append("<tr><td>结果数:"+result+" 所用时间:"+t+"毫秒</td></tr>");
前台显示结果记录的代码,动态生成table标签,如下:
在显示内容中,仍然使用到了Lucene提供的类,可以方便的从所建立的索引文档中获取网址,网页标题,内容,时间。
Document doc = hits.Doc(i);
content=doc.Get("contents");
content=content.Replace(keywords,"<font color=red>"+keywords+"</font>");
sb.Append("<tr class="+c+">");
sb.Append("<td><a href="+doc.Get("Url")+">"+doc.Get("title")+"</a></td>");
sb.Append("</tr>");
sb.Append("<tr class="+c+">");
sb.Append("<td>"+content+"<br>"+doc.Get("CreateDate")+"</td>");
sb.Append("</tr>");
共4页:
上一页
1
2
3
4
下一页
上一篇:
ASP.NET物流运输管理系统的设计与实现+ER图+流程图
下一篇:
ASP.NET+sqlserver博客系统的开发实现
浅析搜索引擎的原理及发展前景【2973字】
提高网站茬Google中的排名...
搜索引擎用于学术信息检索的局限性分析
多搜索引擎信息采集分析系统的设计与实现
Lucene桌面全文搜索引擎系统的分析与设计
面向新闻同步的网站内容自动提取与分类研究
互联网内容形式的发展对搜索引擎的影响
承德市事业单位档案管理...
公寓空调设计任务书
中国学术生态细节考察《...
医院财务风险因素分析及管理措施【2367字】
志愿者活动的调查问卷表
C#学校科研管理系统的设计
国内外图像分割技术研究现状
10万元能开儿童乐园吗,我...
神经外科重症监护病房患...
AT89C52单片机的超声波测距...