基于java语言的搜索引擎开发论文内容摘要:
ne 先在内存中进行索引操作,并根据一定的批量进行文件的写入。 这个批次的间隔越大,文件的写入次数越少,但占用内存会很多。 反之占用内存少,但文件 IO操作频 繁,索引速度会很慢。 在 IndexWriter 中有一 MERGE_FACTOR 参数可以帮助你在构造索引器后根据应用环境的情况充分利用内存减少文件的操作。 根据我的使用经验:缺省 Indexer 是每 20 条记录索引后写入一次,每 当 MERGE_FACTOR 增加 50 倍,索引速度可以提高 1 倍左右。 搜索过程优化 Lucene 面向全文检索的优化在于首次索引检索后,并不把所有的记录( Document)具体内容读取出来,而只将所有结果中匹配度最高的头 100 条结果( TopDocs)的 ID放到结果集缓存中并返回,这里可以比 较一下数据库检索:如果是一个 10,000 条的数据库检索结果集,数据库是一定要把所有记录内容都取得以后再开始返回给应用结果集的。 所以即使检索匹配总数很多, Lucene 的结果集占用的内存空间也不会很多。 对于一般的模糊检索应用是用不到这么多的结果的,头 100 条已经可以满足 90%以上的检索需求。 如果首批缓存结果数用完后还要读取更后面的结果时 Searcher 会再次检索并生成一个 比 上次的搜索缓存数大 1 倍的缓存,再重新向后抓取。 所以如果构造一个 Searcher去查 1- 120 条结果, Searcher 其实是进行了 2 次搜索过 程:头 100 条取完后,缓存结果用完, Searcher 重新检索 , 再构造一个 200 条的结果缓存,依此类推, 400 条缓存,800 条缓存。 由于每次 Searcher 对象消失后,这些缓存也 就 访问不到了,你有可能想将结果记录缓存下来,缓存数尽量保证在 100 以下以充分利用首次的结果缓存,不让Lucene 浪费多次检索,而且可以分级进行结果缓存。 Lucene 的另外一个特点是在收集结果的过程中将匹配度低的结果自动过滤掉了。 这也是和数据库应用 中 需要将搜索的结果全部返回不同之处。 10 3. 开发 环境 信息技术的不断发展,特别 是互联网应用的迅速普及,深入到了人们生活的各个方面,改变了人们 的 生活方式和思维方式,方便了全球信息资源共享。 全球目前的网页超过 100 亿,每天新增加数百万网页,电子信息爆炸似的丰富起来。 要在如此浩瀚的海洋里寻找信息,就像 “大海捞针 ”一样。 能有一种工具使我们可以在不到 1 秒钟的时间就迅速找到我们想要的内容吗。 答案是 “有 ”,这就是搜索引擎。 今天,搜索引擎已成为人们在网络信息海洋中自如冲浪必不可少的利器。 而 随着网络技术的进步,网络编程语言的开发以及进步,给网络搜索引擎的开发提供了前提条件。 网络信息量的集聚增加,寻找有 用信息难度的大幅度增加,成为网络搜索引擎的开发原因。 网络编程语言 JAVA JAVA 语言自从诞生以来,以其平台无关性,面向对象,多线程,半编译半解释等特点而成为网络时代的编程语言。 Java 是一种简单的,面 向 对象的,分布式的,解释的,健 壮的 , 安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。 正是因为这些原因, JAVA 语言无可厚非成为最优秀的网络编程语言,正因为如此,我选JAVA 语言作为我开发网络搜索引擎的工具。 本课题所使用的网络编程语言 均 为 JAVA。 Java 的特点 ( 1) 平台无关性 平台无关性是指 Java 能运行于不同的平台。 Java 引进虚拟机原理,并运行于虚拟机,实现 于 不同平台的 Java 接口之间。 使用 Java 编写的程序能在世界范围内共享。 Java的数据类型与机器无关, Java 虚拟机( Java Virtual Machine)是建立在硬件和操作系统之上,实现 Java 二进制代码的解释执行功能 , 提供于不同平台的接口的。 ( 2) 安全性 Java 的编程类似 C++,学习过 C++的读者将很快掌握 Java 的精髓。 Java 舍弃了 C++的指针对存储器地址的直接操作,程序运行时,内存由操作 系统分配,这样可以避免病毒通过指针侵入系统。 Java 对程序提供了安全管理器,防止程序的非法访问。 ( 3) 面向对象 Java 吸取 了 C++面向对象的概念 ,将数据封装于类中 ,利用类的优点 ,实现了程序的简洁性和便于维护性。 类的封装性、继承性等有关对象的特性,使程序代码只需一次编 11 译,然后通过上述特性反复利用。 程序员只需把主要精力用在类和接口的设计和应用上。 Java 提供了众多的一般对象的类 ,通过继承即可使用父类的方法。 在 Java 中,类的继承关系是单一的非多重的,一个子类只有一个父类,子类的父类又有一个父类。 Java 提供的 Object 类及其子类的继承关系如同一棵倒立的树形,根类为 Object 类, Object 类功能强大,经常会使用到它及其它派生的子类。 ( 4) 分布式 Java 建立在扩展 TCP/IP 网络平台上。 库函数提供了用 HTTP 和 FTP 协议传送和接受信息的方法。 这使得程序员使用网络上的文件和使用本机文件一样容易。 ( 5) 健 壮性 Java 致力于检查程序在编译和运行时的错误。 类型检查帮助检查出许多开发早期出现的错误。 Java 自已操纵内存减少了内存出错的可能性。 Java 还实现了真数组,避免了覆盖数据的可能。 这些功能特征大大提高了开发 Java 应用程序的周期。 Java 提供: Null指针检测、数组边界检测、异常出口、 Byte code 校验。 JDK JDK,全名 Java Developers Kit,是开发 JAVA 的 SUN 公司的 JAVA 语言的基本工具包,是个免费开发运行 JAVA 程序的基本软件, 由一个标准类库和一组 编译工具所 建立,测试及建立文档的 Java 实用程序组成。 其核心 Java API 是一些预定义的类库,开发人员需要用这些类来访问 Java 语言的功能。 Java API 包括一些重要的语言结构以及基本图形,网络和文件 I/O。 一般来说, Java API 的非 I/O 部分对于运行 Java 的所有平台是相同的,而 I/O 部分则仅在通用 Java 环境中实现 , 是整个 Java 的核心,包括了 Java 运行环境( Java Runtime Envirnment), 很多 Java 工具和 Java 基础的类库 ()。 该软件可以从 网站免费下载。 不论什么 Java 应用服务器实质都是内置了某个版本的 JDK。 除了 Sun 之外,还有很多公 司和组织都开发了自己的 JDK,例如IBM 公司开发的 JDK, BEA 公司的 Jrocket,还有 GNU 组织开发的 JDK 等等。 其中 IBM的 JDK 包含的 JVM( Java Virtual Machine)运行效率要比 Sun JDK 包含的 JVM 高出许多。 而专门运行在 x86 平台的 Jrocket 在服务端 的 运行效率也要比 Sun JDK 好很多。 JDK 为编程人员提供了 JAVA 基础类库( JFC), JFC 包含很多包, 在 每个包中都有若干个特定功能和相互关系的类和接口。 作为 JDK 实用程序,工具库中有七种主要程序。 12 ● Javac: Java 编译器,将 Java 源代码转换成字节码。 ● Java: Java 解释器,直接从类文件执行 Java 应用程序字节代码。 ● appletviewer: 小程序浏览器,一种执行 HTML 文件上的 Java 小程序的 Java 浏览器。 ● Javadoc: 根据 Java 源码及说明语句生成 HTML 文档。 ● Jdb: Java 调试器,可以逐行执行程序,设置断点和检查变量。 ● Javah: 产生可以调用 Java 过程的 C 过程,或建立能被 Java 程序调用的 C 过程的头文件。 ● Javap: Java 反汇编器,显示 编译类文件中的可访问功能和数据,同时显示字节代码含义。 TOMCAT Tomcat 是 Sun 的 JSWDK(JavaServer Web Development Kit)中 Servlet 的运行环境(servlet 容器 )。 Tomcat 的源代码被提供给 Jakarta 项目,在 Open Source 的模型下进行进一步的开发。 Tomcat 是一个 Server 容器,同样的, EJB 运行在 EJB 的容器中。 tomcat就是 webserver,可以作为上面说的服务器端的服务软件,用于接收来自客户端的请求,并做出相应的 处理,然后再返回结果到客户端。 我们可以这样认为, 当在一台机器上配置好 Apache 服务器,可利用它响应对 HTML页面的访问请求。 实际上 tomcat 部分是 apache 服务器的扩展,但它是独立运行的,所以当你运行 tomcat 时,它实际上作为一个与 apache 独立的进程单独运行的。 这里的诀窍是,当配置正确时, Apache 为 .html 页面服务,而 tomcat 实际上运行 .jsp 页面和 servlet。 4. 搜索引擎开发 本毕业设计的网络搜索引擎由 、 edu、 text 三个部分组成,这三个部分相对独立,又通过不同 的 类 /接口完成各自功能的连接,最后成为一个整体,以完成该搜索引擎的主要功能。 搜索引擎使用的类 /接口 在 JAVA 编程中经常要使用各式各样的类 /接口,它们是 JAVA 程序的连接和实现的主要方法,下图 为该搜索引擎的主要的类 /接口的关系图: 13 图 主要。基于java语言的搜索引擎开发论文
相关推荐
数据存储名称: 学生 信息 数据来源: 学生 信息表 数据去向: 学生 模块 数据组成 : 学生 信息 =学生 帐号 +密码 +姓名 +性别 +注册 时间等 描述:存储了 学生 的 基本 信息 数据存储名称: 教师 信息 数据来源: 教师 信息表 数据去向: 教师 模块 数据组成 : 教师 信息 =教师帐号 +密码 +姓名 +任教科目 +添加时间等 描述:存储了 教师 的基本信息 数据存储名称:
战略关系,创造出了能够与许 多供应商的产品实现整合的解决方案,因而企业用户并不需要做出 要么完全接受,要么全部不要 的承诺。 在部署解决方案的过程中,企业用户不一定要拆除原有的设备从头。 敏捷商务让企业用户能够充分利用现有的系统,自主决定所需的硬件和软件解决方案以及由谁来提供,伸缩自如、游刃有余。 目前最新的版本为 MicrosoftSQLServer2020 Tomcat 5 简介
3。 49 基于 JSP 技术的企业门户网站的设计与实现 4 引 言 Inter 的全球性发展,对人们的生活、生产方式都产生了深远的影响。 据推算到 2020 年底,我国网民人数将达到 个亿,成为全球最大的互联网市场。 建设企业门户性网站,树立企业的网络形象,成为企业适应信息化时代发展的最佳方式。 企业门户性网站的建设,使企业能够通过网络和客户更好 的交流,拉近企业和客户的距离
课程设计内容 需求分析 魔板游戏就是大家以前常玩的拼板游戏。 就是将一幅完整 的图片分成小块,打乱顺序,再拼好,并且只能将图块和临界的空格交换位置。 用最短的时间和最省的步骤将图形拼好,此玩法虽然简单,但特别考验智力,魔板游戏与魔方游戏相似属于益智游戏。 2020 级程序设计综合实验报告 10 此项目我们需要通过面向对象的 Java 程序设计来实现,游戏设计中需要用到 GUI 图形界面的设计
界面包的职责是: ( 1) 与用户的交互,接收用户的各种输入以及输出各种提示信息或处理结果。 ( 2) 对于输入的数据进行数据校验,过滤非法数据。 ( 3) 向业务处理对象发送处理请求。 用户界面包图展开如图 32所示: 用 户 界 面输 入 , 输 出数 据 效 验发 送 业 务 处 理 请 求 图 32 用户界面包展开图 Fig32 Package Diagram of Users
配合 setSavepoint()方法所设置的退回点,退回到相应的点 getMetaData 返回用于连接的一个 DatabaseMetaData对象 getTransactionIsolation() 返回连接的事务处理隔离层 getWarnings() 返回在这个连接中通过调用报告的第一个 SQL警告 inReadOnly() 返回连接的只读状态 setAutoClose() 激活默认