菜单
  

    引用
        
         检索         

                              
    图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+"&nbsp;所用时间:"+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>");
  1. 上一篇:ASP.NET物流运输管理系统的设计与实现+ER图+流程图
  2. 下一篇:ASP.NET+sqlserver博客系统的开发实现
  1. Lucene桌面全文搜索引擎系统的分析与设计

  2. 面向新闻同步的网站内容自动提取与分类研究

  3. 互联网内容形式的发展对搜索引擎的影响

  4. 基于Lucene的桌面搜索引擎的研究与实现

  5. 基于Lucene的站内搜索引擎设计+源代码

  6. 基于Web搜索引擎的CAPTCHA构造方法实现

  7. 基于Lucene.Net的站内搜索引擎的设计

  8. 杂拟谷盗体内共生菌沃尔...

  9. 十二层带中心支撑钢结构...

  10. 河岸冲刷和泥沙淤积的监测国内外研究现状

  11. 中考体育项目与体育教学合理结合的研究

  12. java+mysql车辆管理系统的设计+源代码

  13. 电站锅炉暖风器设计任务书

  14. 大众媒体对公共政策制定的影响

  15. 乳业同业并购式全产业链...

  16. 酸性水汽提装置总汽提塔设计+CAD图纸

  17. 当代大学生慈善意识研究+文献综述

  

About

751论文网手机版...

主页:http://www.751com.cn

关闭返回