版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于ajax+lucene构建搜索引擎的设计与实现摘要通过搜索引擎从互联网上获取有用信息已经成为人们生活的重要组成部 分,lucene是构建搜索引擎的其中一种方式。搜索引擎系统是在.net平台上用 c#开发的,数据库是mssql server 2000o主要完成的功能有:用爬虫抓取网 页;获取有效信息放入数据库;通过lucene建立索引;对简单关键字进行搜索; 使用ajax的局部刷新页血展不结果。论文详细说明了系统开发的背景,开发环境,系统的需求分析,以及功能 的设计与实现。同吋讲述了搜索引擎的原理,系统功能,并探讨使用ajax与服 务器进行数据异步交互,从而改善现有的web应用模式。关键词:
2、l;异步更新;ajax;搜索引擎the design and implementation for constructing thesearch engine with ajax and luceneabstractobtaining useful information from web by search engines has become the important part of people's lives. lucene is the way of constructing search engine. this system is based on the .net p
3、latform using c#. the database is mssql server 2000. main functions are grasping web pages with crawls, adding effective information to the database, establishing index with lucene, searching through keywords, and displaying the results finally.this paper has showed the principle of search engine in
4、 the form of different modules, functions of this system, improving traditional web application model using ajax. it shows explanation of the system's background, development environment, system analysis of demanding, and functions of design.key words: l; asynchronous update; ajax; search engine
5、s1引言1.1课题背景lucene是一个基于java的全文信息检索工具包,它为应用程序提供索引和 搜索功能。lucene fl前是apache jakarta家族中的一个开源项fl。也是冃前最 为流行的基于java开源全文检索工具包丄ucene是java世界中常用的索引api, 使用它提供的方法可以为文本资料创建索引,并提供检索。l它只在 命名方面采纳了.net的建议,主要目标倾向于和java lucene兼容:一个是索引 格式兼容,达到可以共同工作的目的;一个是命名接近(只相差很少,比如大 小写等),目的是可以方便开发者使用java lucene相关的代码和资料。1.2国内外研究现状国内外对
6、搜索引擎研究比较著名的便是google 了。无论搜索技术本身还是 搜索范围与深度,google搜索总是所有搜索引擎的目标。google专业领域搜索 方而做的成效是有目共睹的。google在低层次的智能搜索方面已经开始研究很 多年了,实际的成果就是翻译方而。利用搜索技术,加上经验主义发展出来的 google翻译机器人,在外语翻译方面已经比传统的翻译好很多了。但是翻译仅 仅是学术方面的应用,更重要的是google建立起来的海量搜索历史记录。如果 把这些海量搜索历史记录当作是词典的话,那么如果与搜索技术的结合发展成 为低层次的只能搜索,那么应用就将大大加强与广泛。国内,对搜索引擎的专注和对中文的理解
7、能力也是中国本土搜索引擎行业 独特的竞争力。国内比较著名的比如百度,更专注对中文的处理。中文的意思 多种多样,是很难用程序处理的。目前国内外都在做中文引擎,门户网站、非 门户网站也都在进军搜索业,成立搜索门户。为了满足用户更深层次的需求, 国内的搜索引擎也在不断的完善自己。如何将人类的知识和智能加入到检索中, 如何使搜索引擎的质量产生一个质的飞跃,也是国内搜索引擎努力的方向。中 国网民对智能化搜索需求也是显而易见的。这也意味着搜索不再是简单的技术 或者是网络导航而已,而是会成为普通人生活中必备的工具之一。1. 3本课题研究的意义随着计算机技术和互联网技术的飞速发展,网络上的信息量急剧增长,要
8、在浩如烟海的网络世界中寻找需要的信息,作为现代信息获取技术的主要应用, 那么搜索引擎是必不可少的。通过l,可以很方便的构建起搜索引擎, 本毕业设计除了考查使学生综合运用以前所学知识的能力,同时也使学生了解 当今搜索及编程的一些新技术,并模拟简单的搜索引擎开发。1. 4本课题的研究方法在本系统的开发过程中,首先分析了搜索引擎的相关功能,写出需求分析; 其次,综合运用以前所学的相关知识(数据库,c#等),选择所熟悉的开发工 具进行开发(本系统选择了 microsoft visual studio . net 2003作为开发平 台,开发语言选择了 c#;数据库采用microsoft sql ser
9、ver 2000)由于lucene 不是完整的搜索引擎程序,只为搜索引擎应用提供了工具包,在a平台中, 可使用l这个对lucene兼容的库。使用lucene. net协助完成搜索引 擎相关的网页爬虫与抓取,为文档建立索引,关键词搜索的功能,通过ajax优 化系统,完成页面的局部刷新功能,给用户好的体验。2 lucene. net构建搜索引擎原理2.1全文搜索引擎2丄1搜索引擎的分类获得网站网页资料,能够建立数据库并提供查询的系统,我们都可以把它 叫做搜索引擎。真正意义上的搜索引擎,通常指的是收集了因特网上几千万到 几十亿个网页并对网页中的每一个词(即关键词)进行索引,建立索引数据库 的全文搜索
10、引擎。当用户查找某个关键词的时候,所有在页面内容中包含了该 关键词的网页都将作为搜索结果被搜出来。在经过复杂的算法进行排序后,这 些结果将按照与搜索关键词的相关度排列。按照工作原理的不同,可以把它们 分为两个基本类别:全文搜索和分类目录。全文搜索引擎通过从互联网上提取的各个网站的信息(以网页文字为主) 而建立的数据库中,检索与用户查询条件匹配的相关记录,然后按一定的排列 顺序将结果返回给用户。从搜索来源的角度,全文搜索引擎又可细分为两种, 一种是拥有自己的检索程序(indexer),俗称“蜘蛛” (spider)程序或“机器 人"(robot)程序,并自建网页数据库,搜索结果直接从自
11、身的数据库中调用; 另一种则是租用其他引擎的数据库,并按自定的格式排列搜索结果。分类目录则是通过人工的方式收集整理网站资料形成数据库的,比如雅虎 中国以及国内的搜狐、新浪、网易分类目录。另外,在网上的一些导航站点, 也可以归属为原始的分类目录。2丄2搜索引擎的工作原理搜索引擎的原理,可以看作三步:从互联网上抓取网页,建立索引数据库, 在索引数据库中搜索。全文搜索引擎的“网络蜘蛛”能够扫描一定地址范围内的网站,并沿着网 络上的链接从一个网页到另一个网页,从一个网站到另一个网站采集网页资料。 它为保证采集的资料最新,述会回访已抓取过的网页。网络机器人或网络蜘蛛 采集的网页,还要有其它程序进行分析,
12、根据一定的相关度算法进行大量的计 算建立网页索引,才能添加到索引数据库中。我们平时看到的全文搜索引擎,实际上只是一个搜索引擎系统的检索界面,当你输入关键词进行查询时,搜索 引擎会从庞大的数据库中找到符合该关键词的所有相关网页的索引,并按一定 规则呈现给我们。不同的搜索引擎,网页索引数据库不同,搜索结果也就不尽 相同。利用能够从互联网上自动收集网页的spider程序,自动访问互联网,并沿 着网页中的所有url爬到其它网页,重复这过程,并把爬过的所有网页收集回 来。然后建立索引数据库,由分析索引程序对收集回来的网页进行分析,提取 相关网页信息(包括网页所在url、编码类型、页而内容包含的关键词、关
13、键 词位置、生成时间、大小、与其它网页的链接关系等),然后用这些相关信息建 立网页索引数据库。接下来在索引数据库中搜索排序,当用户输入关键词搜索 后,由搜索系统程序从网页索引数据库中找到符合该关键词的所有相关网页。 最后,由页面生成系统将搜索结果的链接地址和页面内容摘要等内容组织起来 返回给用户。搜索引擎只能搜到它网页索引数据库里储存的内容。2.2 lucene与搜索引擎lucene是一个全文信息检索工具包,为应用程序提供索引和搜索功能。和 java lucene兼容的l可以用在.net平台。lucene能够为文本类型的数 据建立索引,所以你只要能把你要索引的数据格式转化的文本的,lucene
14、就能 对你的文档进行索引和搜索。比如你要对一些html文档,pdf文档进行索引 的话你就首先需耍把html文档和pdf文档转化成文本格式的,然后将转化 后的内容交给lucene进行索引,然后把创建好的索引文件保存到磁盘或者内存 中,最后根据用户输入的查询条件在索引文件上进行查询。不规定耍索引的文 档的格式也使lucene能够适用于几乎所有的搜索应用程序。如图1表示了搜索应用程序和lucene之间的关系,也反映了利用lucene 构建搜索应用程序的流程:webgatherdatapresent search results图1应用程序和lucene2.3索引和搜索索引是现代搜索引擎的核心,建立索
15、引是把数据源处理成非常方便查询的 索引文件的过程。为什么索引这么重要呢,试想你现在要在大量的文档中搜索 含有某个关键词的文档,那么如果不建立索引的话你就需要把这些文档顺序的 读入内存,然后检查这个文章中是不是含有要查找的关键词,这样的话就会耗 费非常多的时间,想想搜索引擎可是在毫秒级的时间内查找岀要搜索的结果的。 这就是由于建立了索引的原因,你可以把索引想彖成这样一种数据结构,他能 够使你快速的随机访问存储在索引中的关键词,进而找到该关键词所关联的文 档。lucene采用的是一种称为反向索引(inverted index)的机制。反向索引就 是说我们维护了一个词/短语表,对于这个表中的每个词/
16、短语,都有一个链表描 述了有哪些文档包含了这个词/短语。这样在用户输入查询条件的时候,就能非 常快的得到搜索结果。我们将在本系列文章的第二部分详细介绍lucene的索引 机制,由于lucene提供了简单易用的api,所以也可以非常容易的使用lucene 对文档实现索引的建立。对文档建立好索引后,就可以在这些索引上面进行搜索了。搜索引擎首先 会对搜索的关键词进行解析,然后再在建立好的索引上面进行查找,最终返回 和用户输入的关键词相关联的文档。2. 4 ajax 技术ajax 全称为"asynchronous javascript and xml"(异步 javascript
17、和 xml), 是指一种创建交互式网页应用的网页开发技术。ajax技术是目前在浏览器中通 id javascript脚本可以使用的所有技术的集合。包括:html和css,使用文 档对象模型dom作动态显示和交互,使用xml做数据交互和操作,使用 xmlhttprequest进行异步数据接收,使用javascript将它们绑定在一起。ajax技术之中,核心的技术就是xmlhttprequest,它最初的名称叫做 xmlhttp,是微软公司为了满足开发者的需要,1999年在ie5.0浏览器中率 先推岀的。后来这个技术被上述的规范命名为xmlhttprequesto它正是ajax 技术之所以与众不同
18、的地方。简而言之,xmlhttprequest为运行于浏览器中的 javascript脚本提供了一种在页面之内与服务器通信的手段。页面内的javascript 可以在不刷新页而的情况下从服务器获取数据,或者向服务器提交数据。 xmlhttprequest的出现为web开发提供了一种全新的可能性,甚至整个改变 了人们对于web应用由什么来组成的看法。它可以使我们以一种全新的方式来 做web开发,为用户提供更好的交互体验。传统的web应用模型如图2:与传统的web开发不同,ajax并不是以一种基于静态页面的方式来看待 web应用的。从ajax的角度看来,web应用应由少量的页面组成,其中每个页 面
19、其实是一个更小型的ajax应用。每个页面上面都包括有一些使用javascript 开发的ajax组件。这些组件使用xmlhttprequest对象以异步的方式与服务器 通信,从服务器获取需要的数据后使用dom api来更新页面中的一部分内容。 因此ajax应用与传统的web应用的区别主要在三个地方:1. 不刷新整个页面,在页面内与服务器通信。2. 使用异步方式与服务器通信,不需要打断用户的操作,具有更加迅速的 响应能力。3. 系统仅由少量页面组成。大部分交互在页面之内完成,不需要切换整个 页面。由此可见,ajax使得web应用更加动态,带来了更高的智能,并且提供了 表现能力丰富的ajax ui
20、组件。3需求分析3. 1同步环境木系统的同步环境如图3:图3同步环境检索服务器通过internet检索web页面。3. 2功能需求本设计要实现的功能:1. 能够对internet ±的网页内容、标题、链接等信息按链式收集。2. 能够实现一定链接深度的网页收集,也就是在internet ±实现一定的url 级的数据收录。3. 对收集到的数据存入mssql server 2000等关系型数据库中、或者存入 文本文件中。4. 网站信息库中的信息会不断的变动,对收集到的数据需要定期的自动维 护,做到定期的删除、从新收集。5. 对收集到的数据进行关键词的检索。6. 对检索出的数据要可
21、定位性,即可以显示对数据的出处的链接。7. 实现中英文分词功能,能够按中文或者英文单词检索数据。&实现无刷新的显示搜索结果,对搜索用时的计算、显示,关键字高亮显 示等。9.逻辑搜索功能比如“中国” and “北京” and not (“海淀区” and “中关村”)。3. 3性能需求1. 精度:1.1对收集到的信息需要一定的完整性,即对链接层次里的每个链接页 面都能够收集得到,并写入收集的存储区里。1. 2对搜索出的内容需要包含有关键字信息2. 时间特性要求:2. 1数据收集吋,因为是对internet网上web信息的收集,并且采用url级链式的网页收集。收集数据时不能够出现无响应的等
22、待。2. 2搜索时响应时间应不超过3秒,无论搜索的记录多少。3. 灵活性3. 1具有良好的中文切词功能。3.4输入输出要求输入:搜索的关键字。处理:去前后空格,关键字,查询索引库。输岀:web页面上显示搜索信息。3. 5运行需求1 硬件坏境需求:需要使用专用服务器,p4以上,512m以上内存,80g以上硬盘;internet 网络连接。2.软件坏境:源端:windows 2003/xp 操作系统、mssql server 2000 数据库、iis5.0、.netframework 1.1 o4方案设计结合前面的同步原理,以及需求的介绍,下面给出同步的方案设计。4.1搜索引擎模型模型包括爬虫、索
23、引生成、查询以及系统配置部分。爬虫包括:网页抓取 模块、网页减肥模块、爬虫维持模块。索引生成包括:基于文本文件的索引、 基于数据库的索引。查询部分有ajax、后台处理、前台界面模块。如图4所示。爬虫索引查询图4系统模块4.2数据库的设计本课题包含一张用于存放抓取冋来的网页信息如表1。表1网页数据存储表逻辑字段名物理字段名字段类型是否为空主键外键说明编号idintnot nullyes自增加地址urlvarchar(50)not null内容contentvarcllar(looo)not nullmeta标签内 容网页标题 创建时间matatitlecreatedatevarchar(100)
24、varchar(100)datetime(8)not nullnot nullnot null4. 3模块设计该模型按照功能划分为三个部分,一是爬虫抓取网页部分,二是从数据库建立索引部分,三是从前台页面查询部分。系统的功能流程(如图5.1和5.2)。输入一个url获取有效记录使用l搜索类ajax 结果列表图5.1功能流程图图5. 2模块图该系统用3个模块来实现搜索引擎的主要功能。流程如上图所示。从一个或若干初始网页的url开始,获得初始网页上的url,在抓取网 页的过程中,不断从当前页面上抽取新的url放入队列,直到满足系统的一定 停止条件。这条件可以是限定的谋个域名空间、或者是限定的网页抓取
25、级数。 当在获取url时存在这样的问题就是在实际应用中主要以绝对地址和和对地 址来表现。绝对地址是指一个准确的、无歧义的internet资源的位置,包含域名 (主机名)、路径名和文件名;相对地址是绝对地址的一部分。然后把抓取到的 网页信息包括网页内容、标题、链接抓取时间等信息经过'减肥'后保存到网 页存储数据库表里。然后通过正则表达式,去掉多余的html标签。因为抓取 的网页含有html标签、javascript等,对搜索多余的信息,如果抓取到的网页 不经过处理就会使搜索变得不够精确。让爬虫程序能继续运行下去,就得抓取这个网页上的其它url,所以要用 正则将这个网页上的所有ur
26、l都取出来放到一个队列里。用同样的方法继续抓 取网页,这里将运用到多线程技术。为了对文档进行索引,lucene提供了五个基础的类,他们分别是document, field, index writer, analyzer, directory document 是用来描述文档的,这里的 文档可以指一个html页面,一封电子邮件,或者是一个文本文件。一个 document对象由多个field对象组成的。可以把一个document对象想象成数 据库中的一个记录,而每个field对象就是记录的一个字段。在一个文档被索引 之前,首先需要对文档内容进行分词处理,这部分工作就是由analyzer来做的。 a
27、nalyzer类是一个抽象类,它有多个实现。针对不同的语言和应用需要选择适 合的analyzero analyzer把分词后的内容交给indexwriter来建立索引。所有的搜索引擎的目标都是为了用户查询。通过查询页面,输入关键字,提交给系统,程序就开始处理,最后把结果以列表的形式显示出来。在用lucene的搜索引擎中,用到了 lucene提供的方法,可从所建立的索引文档中获得结果。5系统实现5. 1开发环境开发平台的选择:本系统的开发平台选择微软公司的.net,开发工具采用asp.net。.net是microsoft面向web月艮务的平台,由框架、web服务、.net 企业服务器等几部分组成
28、,提供涉及而较广、功能较全面的解决方案。数据库 选择:根据需求分析选择了 mssql sewer 2000。5. 2关键代码详解5.2.1代码结构如图6:图6代码结构在网页爬虫console端应用程序里输入一个有效的url后这部份就开始从 第一个url开始遍历相关的链接并把相关的信息写入到网页数据存储数据库 里,然后就由索引牛成程序读取网页数据存储数据库,对每条记录牛成索引记 录,存放于生成的索引库文件里。生成索引需要调用lucene.net类。索引生成 后在查询部分就能够在网页上输入关键字,对刚才抓取的信息的查询。并可以 定位到信息的出处。下面对各部分关键代码进行详解。5.2.2爬虫部分这部
29、份的功能就是从输入的url开始遍历各个相关的网页,它包括三个功 能模块:网页抓取模块、网页减肥模块、爬虫维持模块。首先定义一些变量用于保存抓取到的网页信息,urllist用于保存当前页面 上的url集合。然后根据全局变量url抓取此url的网页信息到字节流变量里, 经过转码后读取到变量pagestring里,下步通过函数gethttpurl(pagestring)对 pagestring中的url标记进行提取并返回到urllist变量里,函数 gettitle(pagestring) 、 parsescript(pagestring) 、 parsehtml(pagestring)、 pars
30、echar(content)别对网页信息变量获取标题、去除脚本块、去除html标 记、去除特殊字符操作。再下步就是对获取到的标题、网页内容、链接等信息 调用数据库操作通用类dai保存到数据库里,这就实现了一个网页的抓取。再 下步就是循环的对获取到的url列表创建线程,针对每个url来循环的执行 上面的网页信息的抓取操作。具体代码如下: private static void urlthread()string title=""string content 二”;string mata=,m;string url二”“;string urlarr = null;stringb
31、uilder urllist = new stringbuilder();system.net.webclient client=new system.net.webclient();trystream strm=null;try/读取一个url的信息到流变量里stream strm=client.openread(url);catchconsole.writeline(murl无法找到! ”);return;streamreader sr=new streamreader(strm,encoding.getencoding(mgb2312");string pagestring=s
32、r.readtoend();/从流屮读収网页信息到字符串变量屮 strm.close();urllist = gethttpurl(pagestring);title=gettitle(pagestring);content = parsescript(pagestring); /去掉脚本的网页文本 content=parsehtml(pagestring);得到去 了 html 标签的网页文本url=url;mata=,n,;content = parsechar(content);if(title != ” | title != string.empty) && url !
33、= ”“)dai.runsqlnonqueryc'insert into webcontent(url,content,title,mata) values(“'+url+”t”+content+”',”'+titlc+“',“'+mata+”')”); console.writeline(h对url:“+url+”相关信息写入数据库成功! “);elseconsole.writeline(h对url:“+url+”相关信息写入数据库失败! “);urlarr=urllist.tostring().split(t);对前面获取的url列表
34、循坏的创建线程再执行本方法实现爬虫的维持for(int i=o;i<urlait.length;i+)url=urlarri;if(url = "" | url = null | url = string.empty)continue;thread th = new thread(new threadstarl(urlthread);th.start();catch 523索引生成这部分包含对文本的索引生成以及对数据库数据的索引生成,下面只对数 据库索引生成的关键代码进行介绍:下面这段代码实现对数据库里存储的记录创建索引。主要通过lucene提供 的方法来协助实现。p
35、ublic indexer(string indexdir)#region lucene code首先通过标准分词定义了一个索引写入器indexwriter writer = new indexwriter(indexdir, new standardanalyzer(), true);在创建索引库时,会合并多个segments文件。此方式有助丁减少索引文件 数量,减少同时打开的文件数量。writer.setusecompoundfile(false);删除以前生成的索引文件。system.10.directory.delete(idexdirjrue);# endregiondatetime
36、 start = datetime.now;doindexbydb(wriler);/datetime end = datetime.now;int docnum = writer.doccount();console.writeline(mindex finished. 0 documents takes 1 second役docnum, (timespan)(end - start).totalseconds);writer.optimize();writencloseo;使用lucene提供的方法对数据库中的每条记录建立索引实现如下:document doc = new document
37、();console.writeline("indexing 0 ", row"title".tostring(); doc.add(field.text("contentsn, row "content" .tos tring(); doc.add(field.keyword("titleh, row',title',j.tostring(); doc.add(field.keyword(,'mata",row,mata".tostring();doc.add(fiel
38、d.keyword("createdate",rowf"createdate"l.tostring(); doc.add(field.keyword(,urr,row,urr,.tostring();doc.add(field.keyword(,id,row,id,.tostring();writer. adddocument(doc);5.2.4页面查询这部分主要完成的功能是获取前台表单屮输入的关键字,在程序屮获取查 询结果,最后把列表显示在前台页面。ajax在此部分中被使用到,它完成的功能是部分刷新页面,不需整个页面 的重新加载。为了方便的在程序屮使
39、用ajax,此系统引用了封装完善的ajax 类库。在程序中注册后,在html里就可以使用javascript來调用后台的程序。 选取部分代码来说明:首先在页面后台程序中进行ajax注册,代码如下:private void page_load(object sender, system.eventargs e)/ajax注册 ajaxpro.utility.registertypeforajax(typeof(search);如果前台javascript需要调用某个方法,那就在那个函数前加上 ajaxpro.ajaxmethod,表示此方法属于ajax应用。ajaxpro.ajaxmethodp
40、ublic string searchresult(string keywords,string pageno)其中,前台所存在的文字的代码如下:stringbuilder sb = new stringbuilder();sb.append(n<trxtd> 结果数:u+result+h 所用时间:”+t+” 毫秒 </td></tr>n);前台显示结果记录的代码,动态生成table标签,如下:for(int i = startnum ; i < endnum; i+)在显示内容中,仍然使用到了 lucene提供的类,可以方便的从所
41、建立的索 引文档中获取网址,网页标题,内容,时间。document doc = hits.doc(i);con tent=doc.get(uc on tentsh);content=content.replace(keywords,h<font color=red>u+keywords+m</font>m); sb.append(,r<tr class=n+c+m>u);sb.append("<td><a href=n+doc.get("url")+,>,'+doc.get("title
42、',)+',</a></td>");sb.append(u</tr>u);sb.append("<tr class="+c+">");sb.append("<td>m+content+"<br>"+doc.get(mcreatedate")+"</td>h); sb.append(n</tr>n);6测试为了检验搜索引擎的基木功能是否实现,过程是否出现错误,以及是否达 到了需求说明中所
43、定义的需求,测试结果介绍如下:6. 1功能测试第一步:确定数据库中数据为空。运行spider爬虫,抓取网页。运行界面 及过程如图7:c、 "c 二 dociment s and set t ingsadainxst rat orlfljindexdebo5 1 8 144spiihtt p : z/222 丄8.147 1.63/ch/index - html图 7 spider第二步:运行index模块,把数据库中的记录建立索引,运行界面及过程 如下:-lx如果存放索引的文件已经存在,则会清除 当数据库里没有记录时,如图&c *c: docu>ent s and se
44、tt ingsad>inist rat or桌面indexde10-5-18-l-44diri.b犒空成功,现在开始重新建立索引indexingindexingindexingindexingindexingindexingindexing口国高育 口国高育 咼考生扌iwtis頁击场塘数索统ingindex finisbed. 7 documents takes 0.484375 second. press any key to continue图 9index2第三步:运行search web模块,从表单中进行关键字搜索,此搜索结果数 据来源于前2步的操作,如图10。1 http :
45、/loc<lhozt/so &rchyab/sa arch, axpx输入关键词n投索图 10 searchi当在表单中输入信息时,结果以列表形式显示,其中关键字显示为红色, 网页的title显示为蓝色,其他信息包括搜集信息时的日期,内容。图片显示 如图11:输入彌词i高老生报老信i匚皱二索目結果数:4所用时司:0.0156252抄直考生报考信息提交奇送生报考佶息提交 function high(which)theobject=whichhighhghnr«g=setlnteivaxhighhghut(theot9ect)jo)fhnctioit towhkh)clea
46、iintervakhighlight! 'aduchfilteis.alpha.opacityjoiftirction highhit(cux)if (cur.fillers.dpha.opacity 用尸:gaohwyun您己成功jshave been possfolehis woild wide web service rould not have been possible without the excellent contrkutions to the euiope-ld mailing list by all its member. i* d particulariy li
47、ke to think bovl (andy bovmgton) of sco ghent integration division. steve hosgpod of swansea university, and duncan smith of hewlett-packaxd for their imny and various contribulions. 1* d also like to thank the department of electronic and electrical ergiheenng for allows me to host the europe-ld se
48、rvices on their mgchmes i hope that you* w found tins web service useftil, if not please tet me know, any feedback on what we could do better is always uselul 1 can only do so much and any contributions you can make to this server and the othei parts of the europe-ld sendee wall be most welcome enter.随着社会转型步伐的加快、企业发 展周期的縮短以及全球经济的日玲融合 > 今天人们对待职业和生活的姿态发生了巨大的改吏.未乘新的就业根式是一个由三个阶段构成的循环 >彼 总结为“藤找、充电、,这个循环将畫穿我们整个职业生涯如果你找到一份工作,这个循环将从你与新公司的协调开始。苜先,你
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论