h20xx032115_基于ajaxlucene构建搜索引擎的设计和实现内容摘要:
网站采集网页资料。 它为保证采集的资料最新,还会回访已抓取过的网页。 网络机器人或网络蜘蛛 采集的网页,还要有其它程序进行分析,根据一定的相关度算法进行大量的计 算建立网页索引,才能添加到索引数据库中。 我们平时看到的全文搜索引擎, 第 页 共 19 页 2 实际上只是一个搜索引擎系统的检索界面,当你输入关键词进行查询时,搜索 引擎会从庞大的数据库中找到符合该关键词的所有相关网页的索引,并按一定 规则呈现给我们。 不同的搜索引擎,网页索引数据库不同,搜索结果也就不尽 相同。 利用能够从互联网上自动收集网页的 Spider 程序,自动访问互联网,并沿 着网页中的所有 URL 爬到其它网页 ,重复这过程,并把爬过的所有网页收集回 来。 然后建立索引数据库,由分析索引程序对收集回来的网页进行分析,提取 相关网页信息(包括网页所在 URL、编码类型、页面内容包含的关键词、关键 词位置、生成时间、大小、与其它网页的链接关系等),然后用这些相关信息建 立网页索引数据库。 接下来在索引数据库中搜索排序,当用户输入关键词搜索 后,由搜索系统程序从网页索引数据库中找到符合该关键词的所有相关网页。 最后,由页面生成系统将搜索结果的链接地址和页面内容摘要等内容组织起来 返回给用户。 搜索引擎只能搜到它网 页索引数据库里储存的内容。 Lucene 与搜索引擎 Lucene 是一个全文信息检索工具包,为应用程序提供索引和搜索功能。 和 Java Lucene 兼容的 可以用在 . 平台。 Lucene 能够为文本类型的数 据建立索引,所以你只要能把你要索引的数据格式转化的文本的, Lucene 就能 对你的文档进行索引和搜索。 比如你要对一些 HTML 文档, PDF 文档进行索引 的话你就首先需要把 HTML 文档和 PDF 文档转化成文本格式的,然后将转化 后的内 容交给 Lucene 进行索引,然后把创建好的索引文件保存到磁盘或者内存 中,最后根据用户输入的查询条件在索引文件上进行查询。 不规定要索引的文 档的格式也使 Lucene 能够适用于几乎所有的搜索应用程序。 如图 1 表示了搜索应用程序和 Lucene 之间的关系,也反映了利用 Lucene 构建搜索应用程序的流程: 图 1 应用程序和 Lucene 第 页 共 19 页 3 索引和搜索 索引是现代搜索引擎的核心,建立索引是把数据源处理成非常方便查询的 索引文件的过程。 为什么索引这么重要呢,试想你现在要在大量的文档中搜索 含有某个关键词的文档,那么如果不建立索引的话你就需要把这些文档顺序的 读入内存,然后检查这个文章中是不是含有要查找的关键词,这样的话就会耗 费非常多的时间,想想搜索引擎可是在毫秒级的时间内查找出要搜索的结果的。 这就是由于建立了索引的原因,你可以把索引想象成这样一种数据结 构,他能 够使你快速的随机访问存储在索引中的关键词,进而找到该关键词所关联的文 档。 Lucene 采用的是一种称为反向索引( inverted index)的机制。 反向索引就 是说我们维护了一个词 /短语表,对于这个表中的每个词 /短语,都有一个链表描 述了有哪些文档包含了这个词 /短语。 这样在用户输入查询条件的时候,就能非 常快的得到搜索结果。 我们将在本系列文章的第二部分详细介绍 Lucene 的索引 机制,由于 Lucene 提供了简单易用的 API,所以也可以非常容易的使用 Lucene 对文 档实现索引的建立。 对文档建立好索引后,就可以在这些索引上面进行搜索了。 搜索引擎首先 会对搜索的关键词进行解析,然后再在建立好的索引上面进行查找,最终返回 和用户输入的关键词相关联的文档。 Ajax 技术 Ajax 全称为 Asynchronous JavaScript and XML(异步 JavaScript 和 XML), 是指一种创建交互式网页应用的网页开发技术。 Ajax 技术是目前在浏览器中通 过 JavaScript 脚本可以使用的所有技术的集合。 包括: HTML 和 CSS,使用文 档对象模型 DOM 作动态显示和交互,使用 XML 做数据交互和操作,使用 XMLHttpRequest 进行异步数据接收,使用 JavaScript 将它们绑定在一起。 Ajax 技术之中,核心的技术就是 XMLHttpRequest,它最初的名称叫做 XMLHTTP,是微软公司为了满足开发者的需要, 1999 年在 浏览器中率 先推出的。 后来这个技术被上述的规范命名为 XMLHttpRequest。 它正是 Ajax 技术之所以与众不同的地方。 简而言之, XMLHttpRequest 为运行于浏览器中的 JavaScript 脚本提供了一种在页面之内与服务器通信的手段。 页面内的 JavaScript 可以在不刷新页面的情况下从服务器获取数据,或者向服务器提交数据。 XMLHttpRequest 的出现为 Web 开发提供了一种全新的可能性,甚至整个改变 了人们对于 Web 应用由什么来组成的看法。 它可以使我们以一种全新的方式来 做 Web 开发,为用户提供更好的交互体验。 传统的 web 应用模型如图 2: 第 页 共 19 页 4 服务器端处理 数据返回 数据提交 新的页面呈现 客户端页面 处理 用户操作后等待 .. 图 2 Web 应用模型 与传统的 Web 开发不同, Ajax 并不是以一种基于静态页面的方式来看待 Web 应用的。 从 Ajax 的角度看来, Web 应用应由少量的页面组成,其中每个页 面其实是一 个更小型的 Ajax 应用。 每个页面上面都包括有一些使用 JavaScript 开发的 Ajax 组件。 这些组件使用 XMLHttpRequest 对象以异步的方式与服务器 通信,从服务器获取需要的数据后使用 DOM API 来更新页面中的一部分内容。 因此 Ajax 应用与传统的 Web 应用的区别主要在三个地方: 1. 不刷新整个页面,在页面内与服务器通信。 2. 使用异步方式与服务器通信,不需要打断用户的操作,具有更加迅速的 响应能力。 3. 系统仅由少量页面组成。 大部分交互在页面之内完 成,不需要切换整个 页面。 由此可见, Ajax 使得 Web 应用更加动态,带来了更高的智能,并且提供了 表现能力丰富的 Ajax UI 组件。 3 需求分析 同步环境 本系统的同步环境如图 3: 第 页 共 19 页 5 图 3 同步环境 检索服务器通过 Inter 检索 Web 页面。 功能需求 本设计要实现的功能: 1. 能够对 Inter 上的网页内容、标题、链接等信息按链式收集。 2. 能够实现一定链接深度的网页收集 ,也就是在 Inter 上实现一定的 URL 级的数据收录。 3. 对收集到的数据存入 MSSQL Server 2020 等关系型数据库中、或者存入 文本文件中。 4. 网站信息库中的信息 会不断的变动,对收集到的数据需要定期的自动维 护,做到定期的删除、从新收集。 5. 对收集到的数据进行关键词的检索。 6. 对检索出的数据要可定位性,即可以显示对数据的出处的链接。 7. 实现中英文分词功能,能够按中文或者英文单词检索数据。 8. 实现无刷新的显示搜索结果,对搜索用时的计算、显示,关键字高亮显 示等。 9. 逻辑搜索功能比如 中国 AND北京 AND NOT( 海淀区 AND 中关村 )。 性能需求 1. 精度: 对收集到的信息需要一定的完整性, 即对链接层次里的每个链接页 面都能够收集得到,并写入收集的存储区里。 对搜索出的内容需要包含有关键字信息 2. 时间特性要求: 数据收集时,因为是对 Inter 网上 Web 信息的收集,并且采用 URL 第 页 共 19 页 6 级链式的网页收集。 收集数据时不能够出现无响应的等待。 搜索时响应时间应不超过 3 秒,无论搜索的记录多少。 3. 灵活性 具有良好的中文切词功能。 输入输出要求 输入:搜索的关键字。 处理:去前后空格,关键字,查询索引库。 输出: Web 页面上显示搜索信息。 运行需求 1.硬件环境需求: 需要使用专用服务器, P4 以上, 512M 以上内存, 80G 以上硬盘; Inter 网络连接。 2.软件环境: 源端: Windows 2020/XP 操作系统、 MSSQL Server 2020 数据库、 、 .NET。 4 方案设计 结合前面的同步原理,以及需求的介绍,下面给出同步的方案设计。 搜索引擎模型 模型包括爬虫、索引生成、查询以及系统配置部分。 爬虫包括:网页抓取 模。h20xx032115_基于ajaxlucene构建搜索引擎的设计和实现
相关推荐
INT(6) 6 ORDER_DATE 定单日期 VARCHAR(20) 20 是 ORDER_MEM_ID 会员编号 INT(5) 5 是 ORDER_STATUS 定单状态 INT(1) 1 是 16 ORDER_SEND_TIME 发送时间 VARCHAR(60) 60 是 ORDER_REMARK 定单备注 VARCHAR(100) 100 是 ORDER_SUM 价钱总和
2、钾 3 千克喷施于绿肥上,再将排水沟两边的泥土还原沟中。 3 天后灌水浸泡,待泥烂时用泥浆糊好田埂。 油菜板田后茬可接早稻、冲稻或一季晚稻。 要求油菜拔蔸收获,每 667 平方米用 20%克无踪除草剂 250 毫升对水 40 千克50 千克加氯化钾 3 千克喷施。 季翻耕后种植作物的田,不管是油菜或蔬菜,翌年水稻均不宜免耕栽培。 免耕栽培应及早规划,冬季种植作物时应采取板田栽培,按厢宽 3
2、盖地膜。 密度 30003500 株/667 平方米。 膜引苗种植种芋后要浇足底水,保证出苗。 如气温高、水分蒸发快,土壤过干,白天地膜底面无凝结水珠,应沿畦沟浇水 1 次。 立春后种芽陆续出土,此期间要经常到田间查看,发现出土的幼苗应立即破膜施苗。 破膜时间以上午 10 时前为宜,可直接用手撕开地膜,掏出幼苗,然后用细土封住放苗口,防止水分丧失和降低土温。 理追肥早熟芋喜温怕旱
— — — — 焊丝或反之 — — — ○ ○ — — — — — — — 充金属;预臵填充金局的化学成分范围 — — — — — ○ — — — — — — 属 — — — — — ○ — — — — — — 焊接位臵 焊接从评定合格的焊接位臵改变为向上立焊 — — — — — — — ○ — ○ ○ ○ 续表 类别 焊 接 条 件 重要因素 补加重要因素 氧乙炔焊 手工电弧焊 埋弧焊
172— 92 电气装置安装工程蓄电池施工及验收规范 Codefor constr uct 垫卞芯淳褒僻捕夫铡瘴挞学窝唱妄健韶礁愉郎港群露售肇势磊虱育旨浮疲手劳御椎切憨雷扔彝动鉴扦沾爵铜复藏弱胁汀壬絮街徒渴犁亚啼帜裴签檬 第 条蓄电池室的建筑工程施工应符合下列要求: GB5017292 电气装置安装工程蓄电池施工及验收规范 UDC 中华人民共和国国家标准 P GB 50172— 92
33 附录 2 系统 部分 VHDL 源程序 34 湖南工业大学本科毕业设计(论文) 1 第 1 章 绪 论 随着社会经济的飞速发展, 现代电子设计技术 也得到了前所未有的发展,核心技术 已趋转向基于计算机的电子设计自动化技术,即 EDA 技 术。 EDA 技术伴随着计算机、集成电路、电子系统设计的发展,经历了计算机辅助设计( Computer Assist Design,简称 CAD)