引用
检索
图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>");
- 上一篇:ASP.NET物流运输管理系统的设计与实现+ER图+流程图
- 下一篇:ASP.NET+sqlserver博客系统的开发实现
-
-
-
-
-
-
-
杂拟谷盗体内共生菌沃尔...
十二层带中心支撑钢结构...
河岸冲刷和泥沙淤积的监测国内外研究现状
中考体育项目与体育教学合理结合的研究
java+mysql车辆管理系统的设计+源代码
电站锅炉暖风器设计任务书
大众媒体对公共政策制定的影响
乳业同业并购式全产业链...
酸性水汽提装置总汽提塔设计+CAD图纸
当代大学生慈善意识研究+文献综述