全文搜索引擎的设计与实现毕业论文
2022-05-26 21:34:48
论文总字数:28503字
摘 要
当今互联网在移动互联网的带动下高速发展,互联网给我们带来便捷地服务,同时还有急剧膨胀的信息总量。对于海量信息的检索,不同的搜索引擎各有专长,可制定的站内搜索引擎引和个性化搜索引擎起人们的兴趣。
本文首先介绍了全文搜索引擎系统的定义、发展史、以及搜索引擎的基本结构及原理。接着 搜索介绍引擎核心技术的介绍,包括中文分词算法和网页排序算法。由于互联网中信息的大量重复,去重复显得十分重要,本文提出一种可以快速过滤待检测重复网页方法。文章接着介绍一款基于Java和NoSQL数据库Redis和Mongodb的搜索引擎实现。借助Redis对Scrapy爬虫框架改进,运用Redis作为倒排索引数据库,Mongodb作为网页存档数据库实现一个中文搜索引擎系统。Redis是一款性能优异的NoSQL数据库,支持持久化和丰富的数据结构使之成为最受欢迎的NoSQL数据库之一,我们使用Redis内置的有序集合数据结构存储搜索引擎的倒排索引。而Mongodb是一款NoSQL数据库,Mongodb对于海量信息存放有着可靠和优异的性能表现。最后通过对南京工业大学校园网站建立校内搜索引擎的案例,将上述搜索引擎投入实际运用,分析系统的运行性能,对系统的优缺点进行分析。
关键词:信息检索 搜索引擎 非关系型的数据库
Design and implementation of Full-text Search Engine
Abstract
Driven by the development of mobile Internet, the Internet brings us convenient services, as well as the rapid expansion of the amount of information. Different search engines have their own expertise of mass information, personalized intra-site search engine indexing and personalized search engine aroused many people's interest.
This paper introduces the basic structure and principles of full-text search engine system as well as search engines' definition and history. Then introducing the core technology of search engine, including Chinese word segmentation algorithm and sorting algorithms. Due to the large number of duplicate information on Internet, it is very important filter out those repeated web pages. This pager gives a rapid filtration method to be detected duplicate web pages. Next, this article went on to introduce a Java-based search engine implementation with NoSQL database Redis and Mongodb. We enhance the function of Scrapy and make it into a crawler cluster. We also use Redis as an inverted index database, Mongodb as a web archive database system in our Chinese search engine. Redis is a high performance NoSQL database support persistent data structure and has become one of the most popular NoSQL database in the world. We use Redis built-in data structure - Sorted Set to store the search engine's inverted index. Mongodb is a NoSQL database which has reliable and high performance for storing vast amounts of information.
Finally, we pass on the campus of Nanjing Tech University to establish case-campus site search engine, the search engine will be put into practical use of the above, we will analyze system performance and accuracy, advantages and disadvantages of the system.
Keywords: Information retrieval Search engine NoSQL
目 录
摘 要 I
Abstract II
第一章 绪论 1
1.1 搜索引擎概述 1
1.2 搜索引擎历史 1
1.3 本文的主要工作和内容 1
第二章 搜索引擎的基本结构 3
2.1 搜索引擎结构 3
2.1.1 爬虫服务 3
2.1.2 网页存储数据库 4
2.1.3 预处理模块 4
2.1.4 倒排索引 4
第三章 中文搜索引擎关键技术 5
3.1 分词技术介绍 5
3.1.1 几种中文分词技术 5
3.1.2 Ansj分词组件介绍 6
3.1.3 Ansj中的索引分词方案 6
3.1.4 停用词 7
3.2 网页排序算法TF-IDF 7
3.2.1 TF(词频)介绍 7
3.2.2 IDF(逆文档频率)介绍 8
3.2.3 TF-IDF缺陷 8
3.3 倒排索引 9
3.4 基于向量空间模型VSM的文本相似度检测 9
3.4.1 向量空间模型算法 9
3.4.2 VSM模型缺陷 10
第四章 详细设计 11
4.1 系统总体架构 11
4.2 数据存储设计与规划 12
4.2.1 索引处理任务队列 12
4.2.2 倒排索引存储结构 13
4.2.3 网页文档存储结构 14
4.3 网页标识生成 15
4.4 爬虫模块设计 17
4.4.1 爬虫协同工作原理 17
4.4.2 压力控制 19
4.4.3 抓取范围限定 19
4.4.4 存储 20
4.4.5 内容过滤 20
4.5 索引处理服务设计 21
4.5.1 TF-IDF计算实现过程 21
4.5.2 相似网页快速过滤模块设计与验证 22
4.6 处理系统中处理任务设计 23
4.7 网页快照设计 24
4.8 搜索服务API设计 24
4.9 前台设计 25
第五章 系统测试与分析 26
5.1 测试方案 26
5.1.1 环境介绍 26
5.1.2 测试数据量 26
5.2 部署方案示例 26
5.2.1 Redis 集群方案 26
5.2.2 爬虫集群方案 28
5.2.3 索引处理服务集群方案 28
5.3 运行分析 29
5.3.1 Redis基准测试 29
5.3.2 爬虫抓取速率 29
5.3.3 内存占用分析 30
5.3.4 准确率与召回率 31
5.4 系统运行情况 32
总结与展望 38
致谢 38
参考文献 39
绪论
搜索引擎概述
搜索引擎是指通过计算机程序以一定策略搜集、处理数据,并为用户提供检索服务的信息系统[[1]]。用户通过选择需要过滤、查询的条件关键字,获取所需要的信息。
随着因特网的高速发展,因特网中的信息总量正在急速增长。世界上最大的商业搜索引擎谷歌的网页索引数量早在2008年就已经突破一万亿,而在最近谷歌透露的信息中,谷歌的爬虫程序,每天会抓取200亿个网页。面对海量的信息,搜索引擎已经成为最重要的信息来源和检索工具。
搜索引擎历史
搜索引擎从诞生至今已经有很多年的历史,最早的搜索引擎有点类似与现在的网址导航,所有被收录的网站会被分类,然后归类到不同的分类中,用户通过点击分类来寻找需要的信息。
请支付后下载全文,论文总字数:28503字