基于Lucene的中英文文档全文搜索引擎

基于Lucene的中英文文档全文搜索引擎

论文摘要

随着互联网的发展,搜索引擎已成为网民获取网络信息的主要工具。在这种趋势下出现了各式各样的搜索引擎。网络上有一类文档包含了大量信息,这类文档包括word、powerpoint、excel等等。虽然目前存在一些专业的文档搜索引擎比如北大天网FTP文件搜索引擎,但这类搜索引擎的检索范围仅限于FTP文档,并且只能对文件名进行检索而无法对文档内容进行检索。尽管有少数的大型专业搜索引擎如baidu、google实现了对文档内容进行检索的功能,但这些搜索引擎并不是针对文档的搜索引擎,它们通过解析HTTP页面的方式来搜集文档,而不支持对FTP服务器上的文档资源的搜集,因而损失了大量的资源。此外,对于日益增长的海量网络数据,检索结果本身就是一个很大的集合,用户很难从这个大集合中有效地获取信息,因此用户需要更具体更客户化的搜索引擎。本文设计和实现的中英文文档全文搜索引擎不同于现有的搜索引擎。该文档搜索引擎对海量网络数据提供了简化性整合,可以灵活地与垂直搜索等技术相结合。该搜索引擎可以被应用到特定的领域比如对特定网站的文档资源的检索、对特定行业的文档资源的检索等等。该系统一方面弥补了现有文档搜索引擎信息量匮乏的缺陷;另一方面,系统“硬件要求低、简洁、灵活、可配置”的特点使其可以方便地应用到各种具有专门需求的全文检索领域。本文重点介绍和实现了以下一些方面:1.系统的总体设计;为提高性能和可扩展性所做的一些局部设计。2. HTTP和FTP爬虫系统。设计并实现了用于抓取特定文档(word, powerpoint, excel)的HTTP和FTP爬虫系统。详细描述了HTTP爬虫的总体架构设计、运行流程、重要组件DNS cache的设计与实现。阐述了URL去重策略的设计与实现、Polite Nice抓取处理策略的设计与实现、HTML页面解析过程的设计与实现、文档抓取过程的设计与实现。阐述了FTP爬虫系统的总体设计和性能优化方案。阐述了爬虫系统的文件去重功能的设计及实现、文档解析系统的接口设计及实现。3.基于apache POI的文档解析模块。介绍了模块总体设计、具体实现、存储优化策略。4.基于lucene的检索模块和UI模块。介绍了lucene的原理,结合web技术阐述了检索模块和UI模块的设计思路和实现方法。文章最后对系统的工作效果和性能进行了简单评测,对系统未来的工作进行了分析和展望,提出了一些优化方案。

论文目录

  • 摘要
  • ABSTRACT
  • 第一章 引言
  • 1.1 背景
  • 1.1.1 搜索引擎介绍
  • 1.1.2 Lucene 介绍
  • 1.2 研究内容
  • 1.3 论文组织
  • 1.4 本章小结
  • 第二章 搜索引擎系统的相关研究
  • 2.1 搜集系统
  • 2.2 索引系统
  • 2.3 检索系统
  • 2.4 文档搜索引擎现状
  • 2.5 本章小结
  • 第三章 系统关键算法和方案
  • 3.1 小型文档搜索系统实现方案
  • 3.1.1 HTTP Spider
  • 3.1.2 FTP Spider
  • 3.1.3 分词系统
  • 3.1.4 索引
  • 3.1.5 UI
  • 3.2 网页抓取系统
  • 3.3 DNS 缓存
  • 3.4 URL 去重算法
  • 3.5 中文分词算法
  • 3.5.1 隐含马尔可夫模型
  • 3.5.2 多层隐马尔可夫模型
  • 3.5.3 基于类的隐马分词算法
  • 3.6 WORD,EXCEL,PPT 文档解析
  • 3.6.1 Apache POI 介绍
  • 3.6.2 Word 文档
  • 3.6.3 Powerpoint 文档
  • 3.6.4 Excel 文档
  • 3.7 Lucene 分析
  • 3.7.1 Lucene 主要模块
  • 3.7.2 索引文件的组成结构
  • 3.7.3 数据流分析
  • 3.7.4 存储抽象
  • 3.7.5 Lucene 索引构建逻辑模块分析
  • 3.8 本章小结
  • 第四章 系统设计实现
  • 4.1 系统架构
  • 4.2 HTTP spider 模块
  • 4.2.1 模块架构
  • 4.2.2 DNS Cache 设计和实现
  • 4.2.3 HTTP spider 的运行流程
  • 4.2.4 FIFO 设计
  • 4.2.5 Polite Nice 抓取处理和robots 协议
  • 4.2.6 HTML 页面的处理流程
  • 4.2.7 文档抓取
  • 4.2.8 文件去重
  • 4.2.9 与文档解析模块的接口
  • 4.3 FTP spider
  • 4.3.1 FTP 协议简述
  • 4.3.2 总体设计
  • 4.3.3 多线程和多进程考虑
  • 4.3.4 FTP spider 用到的FTP 命令
  • 4.3.5 FTP 站点信息搜集流程
  • 4.3.6 文档去重
  • 4.3.7 FTP 抓取的文件和文件解析模块之间的接口
  • 4.4 文档解析模块
  • 4.4.1 文档解析模块设计
  • 4.4.2 存储优化
  • 4.5 检索和UI 模块
  • 4.5.1 Web 技术
  • 4.5.2 JSP 和servlet
  • 4.5.3 检索流程
  • 4.5.4 格式化输出
  • 4.6 本章小结
  • 第五章 实验设计及实验结果
  • 5.1 实验环境及配置
  • 5.2 实验结果
  • 5.3 效果说明
  • 5.3.1 解析文档的bad case 比率
  • 5.3.2 检索效果
  • 5.3.3 Spider 抓取速度
  • 5.3.4 文档解析速度
  • 5.3.5 存储压缩比率
  • 5.4 本章小结
  • 第六章 总结与展望
  • 6.1 总结
  • 6.2 展望
  • 6.3 本章小结
  • 致谢
  • 参考文献
  • 攻硕期间取得的研究成果
  • 相关论文文献

    标签:;  ;  ;  

    基于Lucene的中英文文档全文搜索引擎
    下载Doc文档

    猜你喜欢