关于搜索引擎的论文:浅谈搜索引擎
搜索引擎毕业论文
搜索引擎毕业论文
搜索引擎毕业论文
搜索引擎是当今信息时代的重要工具之一,它以其高效、准确的搜索结果,为人们提供了便捷的信息检索途径。然而,搜索引擎的发展也面临着一些挑战和问题。本文将探讨搜索引擎的发展历程、技术原理以及存在的问题,并提出一些改进的建议。
一、搜索引擎的发展历程
搜索引擎的发展可以追溯到20世纪90年代,当时互联网开始迅速普及。最早的搜索引擎主要是通过建立网页目录和分类索引的方式进行信息检索,但由于互联网信息的快速增长,这种方式无法满足用户的需求。随着技术的进步,基于关键词的搜索引擎逐渐兴起,它通过对网页内容进行索引和排名,提供更加准确和全面的搜索结果。
二、搜索引擎的技术原理
搜索引擎的核心技术是信息检索和网页排名。信息检索是指根据用户输入的关键词,从海量的网页中筛选出与之相关的页面。这一过程主要包括网页爬取、索引建立和查询处理等步骤。网页爬取是指搜索引擎通过自动化程序(蜘蛛)访问互联网上的网页,并将其内容存储到数据库中。索引建立是指将网页内容进行分词、词频统计等处理,生成索引文件以便后续查询。查询处理是指根据用户输入的关键词,从索引文件中查找相关网页,并按照一定的算法进行排序和展示。
网页排名是指根据一定的算法,对搜索结果进行排序和展示。搜索引擎的排名算法通常基于网页的相关性、权威性和用户体验等因素进行评估。相关性是指
网页与用户输入的关键词的匹配程度,权威性是指网页的信誉和影响力,用户
体验是指用户对搜索结果的满意度。搜索引擎通过对这些因素进行综合评估,
为用户提供最符合其需求的搜索结果。
搜索引擎技术论文
搜索引擎技术论文(2)
推荐文章
搜索引擎关键技术论文热度:科学技术在人与自然的关系中有什么变化热度:科学技术协会代表大会闭幕致辞热度:英语作文技术改变生活热度:最新物联网安全技术论文热度:
搜索引擎技术论文篇二
搜索引擎技术及研究
引言
随着计算机网络技术的飞速发展,人们要在互联网的海量信息中查找自己所需的信息,就要使用搜索引擎,搜索引擎已经成为人们获取信息的重要手段。搜索引擎从广义的角度来讲,是指互联网上提供用户检索接口并且具有检索功能的网站,它能帮助人们在互联网中查找到所需要的信息;从狭义的角度来讲,搜索引擎是指根据某种策略、运用特定的计算机程序从网络上搜集要查找的信息,对信息进行组织和处理后,为用户提供检索服务,将用户检索的相关信息展现给用户的系统。
1 搜索引擎的发展历程
搜索引擎是伴随互联网的发展而产生和发展的,互联网已成为人们学习、工作和生活中不可缺少的平台,几乎每个人上网都会使用搜索引擎。搜索引擎大致经历了四代的发展。
1.1 第一代搜索引擎
1994年第一代真正基于互联网的搜索引擎Lycos诞生,它以人工分类目录为主,代表厂商是Yahoo,特点是人工分类存放网站的各种目录,用户通过多种方式寻找网站,现在也还有这种方式存在。
1.2 第二代搜索引擎
随着网络应用技术的发展,用户开始希望对内容进行查找,出现了第二代搜索引擎,也就是利用关键字来查询。最具代表性、最成功的是Google,它建立在网页链接分析技术的基础上,使用关键字对网页搜索,能够覆盖互联网的大量网页内容,该技术可以分析网页的重
要性后,将重要的结果呈现给用户。
搜索引擎
北京理工大学
马哲论文
搜索引擎对社会的作用和影响
信息与电子学院信息工程专业2011 级05111102 班学生姓名易思雄学号1120111194
指导教师翟杰全职称教授
完成日期2012-12-5
搜索引擎对社会的作用和影响
摘要
互联网作为信息技术的载体已成为人们工作、学习、生活、娱乐的重要工具。互联网的发展给人们带来了巨大的方便,人们可以跨越时间和空间界限来共享大量信息。但是,面对互联网上如此丰富的内容,人们同时也感到无所适从。太多的内容使得迅速定位真正需要的信息变得更困难。因此人们迫切需要有效的信息发现工具来为他们在互联网上进行导航。
搜索引擎是一种用于帮助互联网用户查询信息的搜索工具,它以一定的策略在互联网中搜集、发现信息,对信息进行理解、提取、组织和处理,并为用户提供检索服务,从而起到信息导航的作用。它的主要任务是在互联网上主动搜索网页信息并将其自动索引,其索引内容存储于可供查询的大型数据库中。当用户输入关键字查询时,搜索引擎会告诉用户包含该关键字信息的所有网址,并提供通向该网站的链接。
关键词:搜索引擎;搜索引擎的发展;搜索引擎的作用;搜索引擎的作用方式。
目录
1 搜引擎简介..................................................................................................................
2 搜索引擎的发展..........................................................................................................
信息检索与搜索引擎
信息检索与搜索引擎
信息检索是指通过计算机技术来获取符合用户需求的信息的过程。
而搜索引擎作为信息检索的重要工具,能够帮助用户快速、准确地找
到所需的信息。本文将从信息检索的概念、搜索引擎的分类及工作原
理等方面进行探讨。
概念解析
信息检索是现代信息技术的重要组成部分,它广泛应用于各个领域,包括文献检索、互联网搜索、数据挖掘等。它的目标是从大量的存储
介质(如文件、数据库)中检索出与用户需求最相关的信息,以满足
用户的信息需求。
搜索引擎是信息检索的一种应用形式,它通过索引和搜索算法,将
互联网上的信息整理、分类,并根据用户输入的关键词,提供相关的
搜索结果。搜索引擎以其高效、准确的特点在互联网时代得到了广泛
应用。
搜索引擎的分类
根据搜索引擎的不同特点和功能,可以将其分为如下几类:
1.通用搜索引擎:通用搜索引擎是指对互联网上的综合信息进行搜索,并提供与搜索内容相关的各种信息资源,如Google、百度等。这
类搜索引擎具有较好的适应性和广泛的应用范围。
2.垂直搜索引擎:垂直搜索引擎是指针对特定领域或行业的信息进行搜索的引擎。比如,携程旅行网是面向旅游领域的垂直搜索引擎,专门提供与旅游相关的信息资源。垂直搜索引擎在特定行业中能够提供更专业、更精准的搜索结果。
3.学术搜索引擎:学术搜索引擎主要用于学术研究领域,提供与学术论文、学术期刊等相关的搜索结果。如Google学术、万方等。学术搜索引擎为学术研究人员提供了方便、快捷的信息检索工具。
搜索引擎的工作原理
搜索引擎的工作原理可以大致分为下面几个步骤:
1.爬取和索引:搜索引擎会通过网络爬虫爬取互联网上的网页,并建立起一个庞大的网页索引库。爬虫会按照一定的规则,将网页的内容、链接等信息收集起来。
搜索引擎存在的问题和缺陷
搜索引擎存在的问题和缺陷
引言:
随着互联网技术的快速发展,搜索引擎成为我们获取信息的主要途径。搜索引
擎通过对海量数据进行索引、处理和检索,帮助我们在瞬间找到所需的信息。然而,尽管搜索引擎在信息检索方面有重要作用,但它们也存在着一些问题和缺陷。本文将从搜索结果准确性、信息过滤和个人隐私保护等方面探讨搜索引擎存在的问题与挑战。
一、搜索结果准确性
1.1 不同权威度文章排序不合理
在搜索结果页中,排名靠前的页面通常被认为是最相关和最有权威性的。然而,由于搜索引擎算法对用户行为和外部链接等因素有所依赖,某些非权威性网站可能通过SEO技巧提高排名。这导致了不负责任和低质量内容出现在前列,影响了用
户获取可靠信息的能力。
1.2 广告垄断导致结果失衡
大型企业花费巨额广告费用以提高其产品或服务在搜索结果中的曝光率。这样
造成了竞争较小企业或新兴网站在搜索结果中的曝光率较低,难以与大企业公平竞争。这种广告垄断现象意味着用户无法完全依赖搜索引擎获得全面和客观的信息。
1.3 地理位置偏向导致信息局限性
搜索引擎通常根据用户的IP地址确定他们所在的地理位置,并根据该位置提
供本地化结果。然而,这会导致一些重要信息被忽视或过滤掉,因为它们不符合特定地区用户的搜索偏好。地理位置偏向可能使得用户错过一些有价值且多样化的信息。
二、信息过滤
2.1 信息泛滥和主观化问题
由于互联网上产生大量内容,搜索引擎面临着将信息按相关性排序并推荐给用
户的困难。然而,搜索引擎常常受到个性化推荐算法和用户行为分析等因素影响,在未经充分验证或权威机构认证的情况下将某些内容展示给用户。这容易导致信息泛滥、主观化和比例失衡,使得个人判断能力受到限制。
搜索引擎与信息检索技术
电商领域垂直搜索引擎案例分析
Amazon商品搜索
Amazon作为电商巨头,其商品搜索引擎能 够根据用户输入的关键词,快速准确地提供 相关产品信息和购买链接。
eBay搜索
eBay的商品搜索引擎针对其拍卖和固定价格销售模 式进行优化,提供商品图片、描述、价格等详细信 息。
使用简洁、有意义的URL,包 含关键词,提高可读性。
网站地图
提供XML格式网站地图,帮 助搜索引擎更好地了解网站结
构。
内部链接
合理规划内部链接,提高网站 整体权重和页面之间的相关性
。
外部链接建设策略
高质量外链
获取来自权威、相关性强的网 站的外部链接,提高网站权重
。
多样化外链
建设不同类型的外链,如文章 、博客、论坛等,提高外链多 样性。
02
信息检索技术基础
信息检索概念及原理
信息检索定义
信息检索是指从大量文档集中查找满足用户需求的相关信息的过 程。
信息检索原理
信息检索基于文档表示、相似度计算和排序等原理,将用户查询与 文档集进行匹配,返回相关度高的文档。
信息检索系统组成
信息检索系统通常由文档集、用户接口、索引结构、相似度计算模 块和排序模块等组成。
查询处理与结果排序算法
查询解析
对用户输入的查询进行分词、词性标注等处理,以便更准确地理 解用户意图。
浅谈对于搜索引擎的认识
浅谈对于搜索引擎的认识
搜索引擎是一种能够搜索信息的系统,它能根据用户输入的关键词返回最接近查询意图的
网页信息。它可以帮助人们更快、更有效地收集信息,也可以帮助企业宣传营销,由此可
见搜索引擎已经成为了当今时代的重要互联网工具,它对人们的日常生活和工作带来了重
大的影响和变化。
一般来说,搜索引擎的目的是通过索引网站上的文件来响应用户查询,可以查找从文本文
件到图像文件、视频文件等等各种格式的文件。它是由网络爬虫去索引网页,然后由搜索
引擎根据用户输入的搜索词,利用相关的搜索算法和衍生技术,从大量索引库中抽取与用
户搜索意图相关联的搜索结果返回给用户。一般来讲,搜索引擎的技术可以分为:索引技术、建立索引数据库、搜索引擎优化等。
首先,搜索引擎技术包括存储索引技术、召集索引技术和搜索算法。存储索引技术用于存
储用于索引的数据,召集索引技术则是收集网页上新的内容以建立索引,而搜索算法则是
利用索引数据库来响应用户查询。其次,要建立索引数据库,必须采用专业的爬虫技术,
也就是web crawler,即网络爬虫,它能把网页上的信息爬下来或者抓取下来,利用庞大
的数据库保存抓取的信息同时对其进行分类,以便搜索引擎能够快速搜索。还有一种搜索
引擎优化(search engine optimization)技术,它主要是为不同的网页选择不同的键字,让搜索引擎在您给出搜索条件时,能够第一时间把最好搜索结果显示出来。
当今,搜索引擎的发展具有重大价值,从个人用户到企业单位,每一个单位都会使用搜索引擎,来获取想要的信息。对于企业而言,搜索引擎不仅提供了信息服务功能,而且还具有宣传营销的作用,可以帮助企业进行品牌形象的构建,进而实现企业的长期发展目标。
对搜索引擎的认识
对搜索引擎的认识
搜索引擎(search engine)是指根据一定的策略、运用特定的计算机程序搜集互联网上的信息,在对信息进行组织和处理后,为用户提供检索服务的系统。它的工作原是:抓取网页、处理网页、提供检索服务。
搜索引擎一般由搜索器、索引器、检索器和用户接口四个部分组成:
①搜索器:其功能是在互联网中漫游,发现和搜集信息;
②索引器:其功能是理解搜索器所搜索到的信息,从中抽取出索引项,用于表示文档以及生成文档库的索引表;
③检索器:其功能是根据用户的查询在索引库中快速检索文档,进行相关度评价,对将要输出的结果排序,并能按用户的查询需求合理反馈信息;
④用户接口:其作用是接纳用户查询、显示查询结果、提供个性化查询项。
搜索引擎发展早期,多是作为技术提供商为其他网站提供搜索服务,网站付钱给搜索引擎。后来,随着2001年互联网泡沫的破灭,大多转向为竞价排名方式。
目前我认识的主流的搜索引擎也不外乎是百度和谷歌,其次就是搜搜,搜狗,以及雅虎,bing等,这些都是比较综合的搜索引擎。
根据搜索引擎的不同分类主要有:新闻类搜索引擎,例如:新浪的新闻搜索。百度的新闻搜索,谷歌的资讯搜索,新华网新闻搜索等等。这些都是针对新闻的搜索。软件类搜索引擎也有很多。比较突出的就是迅雷狗狗搜索,太平洋软件搜索,华军软件园等。根据搜索引擎的分类还有很多,音乐,电影,图片,文档,视频,博客,购物,旅游,地图,生活等等。
而这其中除了百度和谷歌的里面的产品属于开放性搜索外,其他大部分只是目录搜索,但是这些目录搜索的资源也相当的可观,基本上都覆盖了行业中的大部分主流信息。其实百度谷歌属于全文索引类,他们都有自己的程序索引整个互联网中的资源。但是它们里面的很多信息也都是从这些专业的搜索中检索到的,而有些东西只是在不同的位置获取,实际信息确差不多。
关于搜索引擎的研究论文[共五篇]
关于搜索引擎的研究论文[共五篇]
第一篇:关于搜索引擎的研究论文
摘要:搜索引擎的出现,把互联网产品的技术水平提高到了一个新的高度。本文首先介绍搜索引擎技术的发展历程,其次简要介绍了搜索引擎关键技术和产品;随着移动终端智能化和互联网用户个性化以及社交化为中心的融合趋势下的发展,催生了很多新型应用。结合目前管理信息系统互联网化的发展方向,详细介绍了搜索引擎在管理信息系统中的一整套应用案例。
关键词:搜索引擎;搜索引擎技术;搜索引擎产品;搜索引擎在管理信息系统中案例;搜索引擎发展趋势;
Discussion on search engine
Abstract:The emergence of search engine takes the Internet product technology to a new level.This article first introduces the development of search engine technology, then introduces search engine's key technologies and products.With the intelligent mobile terminals, services users personalized services, and social network integration as the center of the trend, a lot of new applications have bined with the development direction of the current management MIS system, this article introduces the application case of search engine in MIS system.Keyword:search engine;search engine technology;search engine product;search engine in management information system case;search engine development trend;
搜索引擎技术论文
搜索引擎技术论文
中文智能搜索引擎技术研究
引言
随着互联网的快速发展,网络信息量不断增加。面对数量庞大,种类多样的信息,一般搜索引擎无法为用户提供准确的检索结果,开发新的搜索引擎势在必行。智能搜索引擎不仅要提高信息检索准确性和全面性,还要满足用户个性等搜索信息需求。搜索引擎与智能代理相结合的智能化搜索引擎技术能够比较好的实现这一目标。
1搜索引擎
1.1搜索引擎基本原理
搜索引擎由信息搜集系统、文件处理系统、索引系统和检索系统组成。
信息搜集系统通过网页抓取程序(spider)在网络中顺着网页的超链接抓取网页,搜集文档的基本信息并下载至搜索引擎本地,然后将文档和其基本信息分开,并保存到原始文档数据库和文档信息数据库中。
文件处理系统负责将需要索引的文件转换成具有统一编码格式的文本文件。信息搜集系统从网络上下载文件,保存到本地供索引器索引。文件文本格式种类繁多,如纯文本文件、html格式文件、word文件、pdf文档等,文本格式相同的文件,字符编码方式也不尽相同。文件的异构性要求文件处理系统将各种不同格式的类文本文件转换成纯文本文件。
索引系统将程序收集到的文件进行处理,建立索引库和索引。相关处理还包括去除重复网页、分词(中文)、判断网页类型、分析超链接,计算网页的重要度、丰富度等。
检索系统通过用户输入的关键词从索引数据库中找到与关键词匹配的网页,并按照文档得分的高低依次显示在用户浏览器中。
1.2传统搜索引擎的局限性
面对浩如烟海的网络信息,用户想要通过一般搜索引擎获取准确和全面的信息较困难。其局限性表现在:
搜索引擎存在的主要问题和缺陷
搜索引擎存在的主要问题和缺陷
一、概述
搜索引擎是现代互联网时代用户获取信息的主要工具之一,但是它也存在一些
问题和缺陷。本文将就搜索引擎存在的主要问题和缺陷展开分析,并提出相应的解决方案。
二、信息过载与质量不确定性
1. 信息过载:随着互联网的快速发展,海量的信息在不断增加,用户在使用搜
索引擎时常常面临信息过载的困扰。搜索结果中相关性不高或含有大量垃圾信息,使得用户需要花费更多时间和精力筛选有效信息。
2. 质量不确定性:由于搜索引擎无法实时更新所有网页内容,特别是新兴话题
或热点事件,搜索结果中可能会包含过时或不准确的内容,导致用户难以获取最新最准确的信息。
解决方案:
1. 搜索算法优化:通过改进搜索算法,提高搜索结果与用户查询意图的匹配度,并过滤掉低质量网页和垃圾信息。
2. 数据更新机制改进:建立更高效、更频繁地更新网络数据的机制,如增加爬
虫索引频率、强化质检流程、引入人工智能算法等,以确保搜索结果的准确性和实时性。
三、个性化偏好限制用户视野
1. 用户信息收集:搜索引擎通过收集用户的搜索历史、浏览行为等个人信息,
来提供个性化的搜索结果。然而,这种做法可能导致“过滤圈”效应,使用户陷入自我封闭的信息环境中,无法获取到更广泛、多元的信息。
2. 推荐算法局限:推荐算法往往会将相似或与之前兴趣相关的内容推送给用户,过多聚焦于用户已有偏好而忽略了可能符合其潜在需求的其他领域。
解决方案:
1. 多元化推荐策略:搜索引擎可以采用多元化的推荐策略,既考虑到用户个人
喜好,又拓展用户视野。例如,在推送内容时引入随机因素或在结果页面设置相关但少见主题。
搜索引擎论文
搜索引擎论⽂
所谓搜索引擎,就是根据⽤户需求与⼀定算法,运⽤特定策略从互联⽹检索出制定信息反馈给⽤户的⼀门检索技术。当代,论⽂常⽤来指进⾏各个学术领域的研究和描述学术研究成果的⽂章,简称之为论⽂。
搜索引擎论⽂1
[摘要]随着新媒体的迅猛发展,新媒体与传统媒体融合趋势越来越明显,信息资源的整合性也越来越强。搜索引擎作为检索信息的有效⼯具,正发挥着越来越重要的作⽤。企业也开始利⽤搜索引擎作为市场营销的重要渠道。搜索引擎市场在中国正不断发展壮⼤。本⽂回顾了搜索引擎营销在中国的发展历程,指出了搜索引擎营销市场当前的现状、问题以及对策,并对搜索引擎市场的发展趋势做出简要的分析。
[关键词]市场营销搜索引擎营销 SEM 新媒体传播
⼀、搜索引擎营销发展历程
搜索引擎营销的发展是紧随搜索引擎的发展⽽发展的。1994年,以Yahoo为代表的分类⽬录型搜索引擎相继诞⽣,并逐渐体现出⽹络营销价值,于是搜索引擎营销思想开始出现。新的检索技术不断改进,使搜索引擎营销策略不断向着针对性更强、更精准的⽅向发展。
1.⾃然搜索引擎营销阶段
我国在 20xx年之前的搜索引擎主要靠⼈⼯编辑分类⽬录为主,搜索引擎营销需要做的⼯作包括⽹站描述,准备关键词等基本信息,免费提交给各个搜索引擎,并保持跟踪。⼀旦提交成功,就基本不需要对 META标签等进⾏修改了,因为搜索引擎收录的⽹站信息等内容不会因为⽹站的修改⽽随之改变。
2.简单搜索引擎营销阶段
我国在20xx年之前,搜索引擎营销是以免费分类⽬录登陆为主要的⽅式。20xx年到20xx年期间,由于出现了按点击付费(Pay-per-click)的搜索引擎关键词⼴告,带来了收费问题,加上⽹络经济环境因素,搜索引擎营销市场进⼊了调整期,传统⽹络分类⽬录的推⼴作⽤⽇益减弱,甚⾄有⼈预⾔其将消失。
搜索引擎的工作原理及应用
搜索引擎的工作原理及应用
一、搜索引擎的概念
搜索引擎是一种用于查找互联网中特定信息的工具。它通过在庞大的互联网上
索引和检索网页,帮助用户快速找到他们需要的信息。
二、搜索引擎的工作原理
搜索引擎的工作原理可以分为五个主要步骤:
1. 网页抓取(Crawling)
搜索引擎首先会使用爬虫程序(Spider)在互联网上抓取网页。爬虫会从一个
初始的URL(统一资源定位符)开始,然后按照网页上的链接逐步爬取更多的网页。抓取的网页会被存储在搜索引擎的数据库中。
2. 网页索引(Indexing)
搜索引擎会对抓取的网页进行索引,以方便后续的检索。索引是一个类似于图
书馆目录的数据库,它记录了每个网页的关键词、标题、摘要和链接等信息,以及网页的其他特征。通过索引,搜索引擎可以快速地找到相关网页。
3. 查询解析(Query Parsing)
当用户输入一个查询词(关键词)时,搜索引擎会对查询词进行解析和处理。
它会去除无关词(如“的”、“是”等),将查询词转化成合适的搜索语法,并根据用
户的搜索历史或地理位置等信息进行个性化的推荐。
4. 检索与排序(Retrieval and Ranking)
搜索引擎会根据索引中的关键词匹配算法检索出与查询词相关的网页。它会考
虑网页的关键词密度、标题和摘要的相关性,以及其他评估指标,为搜索结果排序。搜索引擎一般会返回最相关和最高质量的网页作为搜索结果。
5. 结果展示(Result Display)
最后,搜索引擎会将排序好的搜索结果呈现给用户。通常会显示网页的标题、
摘要和链接,以及其他与用户查询相关的信息,如图片和视频等。
网络空间搜索引擎的原理研究及安全应用
网络空间搜索引擎的原理研究及安全应用【摘要】
网络空间搜索引擎是一种用于在互联网上搜索和提取信息的工具。本文通过对网络空间搜索引擎的定义、研究背景、研究意义进行介绍,探讨了网络空间搜索引擎的工作原理、分类、安全性分析、安全应用
以及未来发展。在强调了网络空间搜索引擎的重要性和发展趋势,同
时提出了相应的安全性保障措施。本文旨在为读者深入了解网络空间
搜索引擎的原理及安全应用提供基础知识。通过本文的阐述,读者可
以对网络空间搜索引擎有更加全面的了解,能够更好地应用和保护网
络空间搜索引擎。
【关键词】
网络空间搜索引擎、工作原理、分类、安全性分析、安全应用、
未来发展、重要性、发展趋势、安全性保障措施。
1. 引言
1.1 网络空间搜索引擎的定义
网络空间搜索引擎,通常简称为搜索引擎,是一种能够自动搜集、索引并展示互联网信息资源的工具。其主要功能是根据用户输入的关
键词,在网页、图片、视频等互联网资源中进行搜索,并返回相关的
结果给用户。通俗来讲,搜索引擎就是一个庞大的网上图书馆,用户
可以通过输入关键词查找自己需要的信息。
网络空间搜索引擎的本质是一个信息检索系统,其基本原理是通
过网络蜘蛛(又称网络爬虫)程序自动访问互联网上的网页,将网页内容下载到本地服务器进行处理和索引。当用户输入查询请求时,搜索
引擎会根据事先建立的索引库查找匹配的网页,并通过算法给出排名
较高的搜索结果。
网络空间搜索引擎是互联网上最重要的工具之一,帮助用户快速
准确地找到所需信息。它的作用不仅在于提供便利的搜索服务,还扮
演着信息筛选与过滤的重要角色,为用户提供了广阔的信息获取渠道。网络空间搜索引擎的发展也给互联网发展带来了新的动力与机遇,推
简述搜索引擎结构及分类
简述搜索引擎结构及分类
摘要:网络中的资源非常丰富,但是如何有效的搜索信息却是一件困难的事情。建立搜索引擎就是解决这个问题的最好方法。这篇论文就是简单介绍一下基于英特网的搜索引擎的系统结构以及我们常见的搜索引擎分类
引言
面对浩瀚的网络资源,搜索引擎为所有网上冲浪的用户提供了一个入口,毫不夸张的说,所有的用户都可以从搜索出发到达自己想去的网上任何一个地方。因此它也成为除了电子邮件以外最多人使用的网上服务。
搜索引擎技术伴随着WWW的发展是引人注目的。搜索引擎大约经历了三代的更新发展:第一代搜索引擎出现于1994年。这类搜索引擎一般都索引少于1,000,000个网页,极少重新搜集网页并去刷新索引。而且其检索速度非常慢,一般都要等待10秒甚至更长的时间。在实现技术上也基本沿用较为成熟的IR(Information Retrieval)、网络、数据库等技术,相当于利用一些已有技术实现的一个WWW上的应用。在1994年3月到4月,网络爬虫World Web Worm (WWWW)平均每天承受大约1500次查询。
大约在1996年出现的第二代搜索引擎系统大多采用分布式方案(多个微型计算机协同工作)来提高数据规模、响应速度和用户数量,它们一般都保持一个大约50,000,000网页的索引数据库,每天能够响应10,000,000次用户检索请求。1997年11月,当时最先进的几个搜索引擎号称能建立从2,000,000到100,000,000的网页索引。Altavista搜索引擎声称他们每天大概要承受20,000,000次查询。
排序算法论文搜索引擎论文
排序算法论文搜索引擎论文
摘要:该论文首先介绍了搜索引擎的三种基本排序算法,然后介绍了中文词性标注的原理和算法,本文重点是将词性标注原理引入到了搜索引擎的应用中,从输入的索引词着手,提出了运用词性分类优先的方法来影响索引文档的排序,即不同词性给予不同的优先级,根据优先级大小依次筛选文档,进而提高索引精度。该方法是在牺牲有效性的基础上提高索引可靠性的。
关键词:排序算法;搜索引擎;词性标注
speech classification priority application in the search engine
zhang jingchun1,guan shixue1,2,ma yuan1
(nzhou university,college of information science and engineering,lanzhou730000,china;2.pla 66483 troops,beijing100093)
astract:the paper first introduces three basic search engine ranking algorithms, and then introduces the principle and algorithms of chinese part of speech tagging. this paper focus on the index words and puts emphasis on the introduction of the speech tagging principle to a search engine application, and makes use
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要:网络中的资源非常丰富,但是如何有效的搜索信息却是一件困难的事情。建立搜索引擎就是解决这个问题的最好方法。本文首先详细介绍了基于英特网的搜索引擎的系统结构,然后从网络机器人、索引引擎、Web服务器三个方面进行详细的说明。为了更加深刻的理解这种技术,本人还亲自实现了一个自己的搜索引擎——新闻搜索引擎。新闻搜索引擎是从指定的Web页面中按照超连接进行解析、搜索,并把搜索到的每条新闻进行索引后加入数据库。然后通过Web服务器接受客户端请求后从索引数据库中搜索出所匹配的新闻。
关键字:搜索 引擎 网络引擎 新闻搜索 文章搜索 网页快照
Abstract
The resources in the internet are abundant, but it is a difficult job to search some useful information. So a search engine is the best method to solve this problem. This article fist introduces the system structure of search engine based on the internet in detail, then gives a minute explanation form Spider search, engine and web server. In order to understand the technology more deeply, I have programmed a news search engine by myself.
The news search engine is explained and searched according to hyperlink from a appointed web page, then indexs every searched information and adds it to the index database. Then after receiving the customers' requests from the web server, it soon searchs the right news form the index engine,
In the chapter of introducing search engine, it is not only elaborate the core technology, but also combine with the modern code,pictures included, easy to understand.
第一章 引言
面对浩瀚的网络资源,搜索引擎为所有网上冲浪的用户提供了一个入口,毫不夸张的说,所有的用户都可以从搜索出发到达自己想去的网上任何一个地方。因此它也成为除了电子邮件以外最多人使用的网上服务。
搜索引擎技术伴随着WWW的发展是引人注目的。搜索引擎大约经历了三代的更新发展:
第一代搜索引擎出现于1994年。这类搜索引擎一般都索引少于1,000,000个网页,极少重新搜集网页并去刷新索引。而且其检索速度非常慢,一般都要等待10秒甚至更长的时间。在实现技术上也基本沿用较为成熟的IR(Information Retrieval)、网络、数据库等技术,相当于利用一些已有技术实现的一个WWW上的应用。在1994年3月到4月,网络爬虫World Web Worm (WWWW)平均每天承受大约1500次查询。
大约在1996年出现的第二代搜索引擎系统大多采用分布式方案(多个微型计算机协同工作)来提高数据规模、响应速度和用户数量,它们一般都保持一个大约50,000,000网页的索引数据库,每天能够响应10,000,000次用户检索请求。1997年11月,当时最先进的几个搜索引擎号称能建立从2,000,00
0到100,000,000的网页索引。Altavista搜索引擎声称他们每天大概要承受20,000,000次查询。
2000年搜索引擎2000年大会上,按照Google公司总裁Larry Page的演讲,Google正在用3,000台运行Linux系统的个人电脑在搜集Web上的网页,而且以每天30台的速度向这个微机集群里添加电脑,以保持与网络的发展相同步。每台微机运行多个爬虫程序搜集网页的峰值速度是每秒100个网页,平均速度是每秒48.5个网页,一天可以搜集超过4,000,000网页
搜索引擎一词在国内外因特网领域被广泛使用,然而他的含义却不尽相同。在美国搜索引擎通常指的是基于因特网的搜索引擎,他们通过网络机器人程序收集上千万到几亿个网页,并且每一个词都被搜索引擎索引,也就是我们说的全文检索。著名的因特网搜索引擎包括First Search、Google、HotBot等。在中国,搜索引擎通常指基于网站目录的搜索服务或是特定网站的搜索服务,本人这里研究的是基于因特网的搜索技术。
第二章 搜索引擎的结构
2.1系统概述
搜索引擎是根据用户的查询请求,按照一定算法从索引数据中查找信息返回给用户。为了保证用户查找信息的精度和新鲜度,搜索引擎需要建立并维护一个庞大的索引数据库。一般的搜索引擎由网络机器人程序、索引与搜索程序、索引数据库等部分组成。
系统结构图
2.2搜索引擎的构成
2.2.1网络机器人
网络机器人也称为“网络蜘蛛”(Spider),是一个功能很强的WEB扫描程序。它可以在扫描WEB页面的同时检索其内的超链接并加入扫描队列等待以后扫描。因为WEB中广泛使用超链接,所以一个Spider程序理论上可以访问整个WEB页面。
为了保证网络机器人遍历信息的广度和深度需要设定一些重要的链接并制定相关的扫描策略。
2.2.2索引与搜索
网络机器人将遍历得到的页面存放在临时数据库中,如果通过SQL直接查询信息速度将会难以忍受。为了提高检索效率,需要建立索引,按照倒排文件的格式存放。如果索引不及时跟新的话,用户用搜索引擎也不能检索到。
用户输入搜索条件后搜索程序将通过索引数据库进行检索然后把符合查询要求的数据库按照一定的策略进行分级排列并且返回给用户。
2.2.3 Web服务器
客户一般通过浏览器进行查询,这就需要系统提供Web服务器并且与索引数据库进行连接。客户在浏览器中输入查询条件,Web服务器接收到客户的查询条件后在索引数据库中进行查询、排列然后返回给客户端。
2.3搜索引擎的主要指标及分析
搜索引擎的主要指标有响应时间、召回率、准确率、相关度等。这些指标决定了搜索引擎的技术指标。搜
索引擎的技术指标决定了搜索引擎的评价指标。好的搜索引擎应该是具有较快的反应速度和高召回率、准确率的,当然这些都需要搜索引擎技术指标来保障。
召回率:一次搜索结果中符合用户要求的数目与用户查询相关信息的总数之比
准确率:一次搜索结果中符合用户要求的数目与该次搜索结果总数之比
相关度:用户查询与搜索结果之间相似度的一种度量
精确度:对搜索结果的排序分级能力和对垃圾网页的抗干扰能力
2.4小节
以上对基于因特网的搜索引擎结构和性能指标进行了分析,本人在这些研究的基础上利用JavaTM技术和一些Open Source工具实现了一个简单的搜索引擎——新闻搜索引擎。在接下来的几章里将会就本人的设计进行详细的分析。
第三章 网络机器人
3.1什么是网络机器人
网络机器人又称为Spider程序,是一种专业的Bot程序。用于查找大量的Web页面。它从一个简单的Web页面上开始执行,然后通过其超链接在访问其他页面,如此反复理论上可以扫描互联网上的所有页面。
基于因特网的搜索引擎是Spider的最早应用。例如搜索巨头Google公司,就利用网络机器人程序来遍历Web站点,以创建并维护这些大型数据库。
网络机器人还可以通过扫描Web站点的主页来得到这个站点的文件清单和层次机构。还可以扫描出中断的超链接和拼写错误等。
3.2网络机器人的结构分析
Internet是建立在很多相关协议基础上的,而更复杂的协议又建立在系统层协议之上。Web就是建立在HTTP ( Hypertext Transfer Protocol ) 协议基础上,而HTTP又是建立在TCP/IP ( Transmission Control Protocol / Internet Protocol ) 协议之上,它同时也是一种Socket协议。所以网络机器人本质上是一种基于Socket的网络程序。
3.2.1如何解析HTML
因为Web中的信息都是建立在HTML协议之上的,所以网络机器人在检索网页时的第一个问题就是如何解析HTML。在解决如何解析之前,先来介绍下HTML中的几种数据。
文本:除了脚本和标签之外的所有数据
注释:程序员留下的说明文字,对用户是不可见的
简单标签:由单个表示的HTML标签
开始标签和结束标签:用来控制所包含的HTML代码
我们在进行解析的时候不用关心所有的标签,只需要对其中几种重要的进行解析即可。
超连接标签
超连接定义了WWW通过Internet链接文档的功能。他们的主要目的是使用户能够任意迁移到新的页面,这正是网络机器人最关心的标签。
图像映射标签
图像映射是另一种非常重要的标签。它可以让用户通过点击图片来迁移到新的页面中。
表单标签
表单是Web页面中可以输入数据的单元。许多站点让用户填写数据然
后通过点击按钮来提交内容,这就是表单的典型应用。
表格标签
表格是HTML的构成部分,通常用来格式化存放、显示数据。
我们在具体解析这些HTMl标签有两种方法:通过JavaTM中的Swing类来解析或者通过Bot包中的HTMLPage类来解析,本人在实际编程中采用后者。
Bot包中的HTMLPage类用来从指定URL中读取数据并检索出有用的信息。下面给出该类几种重要的方法。
HTMLPage构造函数 构造对象并指定用于通讯的HTTP对象
Public HTMLPage(HTTP http)
GetForms方法 获取最后一次调用Open方法检索到的表单清单
Public Vector getForms()
GetHTTP方法 获取发送给构造函数的HTTP对象
Public HTTP getHTTP()
GetImage方法 获取指定页面的图片清单
Public Vector getImage()
GetLinks方法 获取指定页面的连接清单
Public Vector getLinks()
Open方法 打开一个页面并读入该页面,若指定了回调对象则给出所有该对象数据
Public void open(String url,HTMLEditorKit.ParserCallback a)
3.2.2 Spider程序结构
网络机器人必须从一个网页迁移到另一个网页,所以必须找到该页面上的超连接。程序首先解析网页的HTML代码,查找该页面内的超连接然后通过递归和非递归两种结构来实现Spider程序。
递归结构
递归是在一个方法中调用自己本身的程序设计技术。虽然比较容易实现但耗费内存且不能使用多线程技术,故不适合大型项目。
非递归结构
这种方法使用队列的数据结构,当Spider程序发现超连接后并不调用自己本身而是把超连接加入到等待队列中。当Spider程序扫描完当前页面后会根据制定的策略访问队列中的下一个超连接地址。
虽然这里只描述了一个队列,但在实际编程中用到了四个队列,他们每个队列都保存着同一处理状态的URL。
等待队列 在这个队列中,URL等待被Spider程序处理。新发现的URL也被加入到这个队列中
处理队列 当Spider程序开始处理时,他们被送到这个队列中
错误队列 如果在解析网页时出错,URL将被送到这里。该队列中的URL不能被移入其他队列中
完成队列 如果解析网页没有出错,URL将被送到这里。该队列中的URL不能被移入其它队列中
在同一时间URL只能在一个队列中,我们把它称为URL的状态。
以上的图表示了队列的变化过程,在这个过程中,当一个URL被加入到等待队列中时Spider程序就会开始运行。只要等待队列中有一个网页或Spider程序正在处理一个网页,程序就会继续他的工作。当等待队列为空并且当前没有任何网页时,Spider程序就会停止它的工作。
3.2.3如何构造Spider程序
在构造Spider程序之前我们先了解下程序的各个部分是如何共同工作的。以及如何对这个程序进行扩展。
流程
图如下所示:
IspiderReportable接口
这是一个必须实现的接口,可以通过回调函数接受Spider所遇到的页面。接口定义了Spider向他的控制者发送的几个事件。通过提供对每个事件的处理程序,可以创建各种Spider程序。下面是他的接口声明:
public interface IspiderReportable{
public boolean foundInternalLink(String url);
public boolean foundExternalLink(String url);
public boolean foundOtherLink(String url);
public void processPage(HTTP page);
public void completePage(HTTP page,boolean error);
public boolean getRemoveQuery();
public void SpiderComplete();
}
3.2.4如何提高程序性能
Internet中拥有海量的Web页面,如果开发出高效的Spider程序是非常重要的。下面就来介绍下几种提高性能的技术:
Java的多线程技术
线程是通过程序的一条执行路线。多线程是一个程序同时运行多个任务的能力。它是在一个程序的内部进行分工合作。
优化程序的通常方法是确定瓶颈并改进他。瓶颈是一个程序中最慢的部分,他限制了其他任务的运行。据个例子说明:一个Spider程序需要下载十个页面,要完成这一任务,程序必须向服务器发出请求然后接受这些网页。当程序等待响应的时候其他任务不能执行,这就影响了程序的效率。如果用多线程技术可以让这些网页的等待时间合在一起,不用互相影响,这就可以极大的改进程序性能。
数据库技术
当Spider程序访问一个大型Web站点时,必须使用一种有效的方法来存储站点队列。这些队列管理Spider程序必须维护大型网页的列表。如果把他们放在内存中将会是性能下降,所以我们可以把他们放在数据库中减少系统资源的消耗。
3.2.5网络机器人的代码分析
程序结构图如下:
程序代码实现如下:
package news;
/**
* 新闻搜索引擎
* 计算机99630 沈晨
* 版本 1.0
*/
import com.heaton.bot.HTTP;
import com.heaton.bot.HTTPSocket;
import com.heaton.bot.ISpiderReportable;
import com.heaton.bot.IWorkloadStorable;
import com.heaton.bot.Spider;
import com.heaton.bot.SpiderInternalWorkload;
/**
* 构造一个Bot程序
*/
public class Searcher
implements ISpiderReportable {
public static void main(String[] args) throws Exception {
IWorkloadStorable wl = new SpiderInternalWorkload();
Searcher _searcher = new Searcher();
Spider _spider
= new Spider(_searcher, "http://127.0.0.1/news.htm",
new HTTPSocket(), 100, wl);
_spider.setMaxBody(100);
_spider.start();
}
// 发现内部连接时调用,url表示程序发现的URL,若返回true则加入作业中,否则不加入。
public boolean foundInternalLink(String url) {
return false;
}
// 发现外部连接时调用,url表示程序所发现的URL,若返回true则把加入作
业中,否则不加入。
public boolean foundExternalLink(String url) {
return false;
}
// 当发现其他连接时调用这个方法。其他连接指的是非HTML网页,可能是E-mail或者FTP
public boolean foundOtherLink(String url) {
return false;
}
// 用于处理网页,这是Spider程序要完成的实际工作。
public void processPage(HTTP http) {
System.out.println("扫描网页:" + http.getURL());
new HTMLParse(http).start();
}
// 用来请求一个被处理的网页。
public void completePage(HTTP http, boolean error) {
}
// 由Spider程序调用以确定查询字符串是否应删除。如果队列中的字符串应当删除,方法返回真。
public boolean getRemoveQuery() {
return true;
}
// 当Spider程序没有剩余的工作时调用这个方法。
public void spiderComplete() {
}
}
3.3小节
在本章中,首先介绍了网络机器人的基本概念,然后具体分析了Spider程序的结构和功能。在最后还结合具体代码进行了详细说明。
本人在编程中运用了JavaTM技术,主要涉及到了net和io两个包。此外还用了第三方开发包Bot(由Jeff Heaton提供的开发包)。
第四章 基于lucene的索引与搜索
4.1什么是Lucene全文检索
Lucene是Jakarta Apache的开源项目。它是一个用Java写的全文索引引擎工具包,可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。
4.2 Lucene的原理分析
4.2.1全文检索的实现机制
Lucene的API接口设计的比较通用,输入输出结构都很像数据库的表==>记录==>字段,所以很多传统的应用的文件、数据库等都可以比较方便的映射到Lucene的存储结构和接口中。
总体上看:可以先把Lucene当成一个支持全文索引的数据库系统。
索引数据源:doc(field1,field2...) doc(field1,field2...)
\ indexer /
_____________
| Lucene Index|
--------------
/ searcher 结果输出:Hits(doc(field1,field2) doc(field1...))
Document:一个需要进行索引的“单元”,一个Document由多个字段组成
Field:字段
Hits:查询结果集,由匹配的Document组成
4.2.2 Lucene的索引效率
通常书籍后面常常附关键词索引表(比如:北京:12, 34页,上海:3,77页……),它能够帮助读者比较快地找到相关内容的页码。而数据库索引能够大大提高查询的速度原理也是一样,想像一下通过书后面的索引查找的速度要比一页一页地翻内容高多少倍……而索引之所以效率高,另外一个原因是它是排好序的。对于检索系统来说核心是一个排序问题。
由于数据库索引不是为全文索引设计的,因此,使用like "%keyword%"时,数据库索引是不起作用的,在使用like查询时,搜索过程又变成类似于一页页
翻书的遍历过程了,所以对于含有模糊查询的数据库服务来说,LIKE对性能的危害是极大的。如果是需要对多个关键词进行模糊匹配:like"%keyword1%" and like "%keyword2%" ...其效率也就可想而知了。所以建立一个高效检索系统的关键是建立一个类似于科技索引一样的反向索引机制,将数据源(比如多篇文章)排序顺序存储的同时,有另外一个排好序的关键词列表,用于存储关键词==>文章映射关系,利用这样的映射关系索引:[关键词==>出现关键词的文章编号,出现次数(甚至包括位置:起始偏移量,结束偏移量),出现频率],检索过程就是把模糊查询变成多个可以利用索引的精确查询的逻辑组合的过程。从而大大提高了多关键词查询的效率,所以,全文检索问题归结到最后是一个排序问题。
由此可以看出模糊查询相对数据库的精确查询是一个非常不确定的问题,这也是大部分数据库对全文检索支持有限的原因。Lucene最核心的特征是通过特殊的索引结构实现了传统数据库不擅长的全文索引机制,并提供了扩展接口,以方便针对不同应用的定制。
可以通过一下表格对比一下数据库的模糊查询:
Lucene全文索引引擎 数据库
索引 将数据源中的数据都通过全文索引一一建立反向索引 对于LIKE查询来说,数据传统的索引是根本用不上的。数据需要逐个便利记录进行GREP式的模糊匹配,比有索引的搜索速度要有多个数量级的下降。
匹配效果 通过词元(term)进行匹配,通过语言分析接口的实现,可以实现对中文等非英语的支持。 使用:like "%net%" 会把netherlands也匹配出来,
多个关键词的模糊匹配:使用like "%com%net%":就不能匹配词序颠倒的
匹配度 有匹配度算法,将匹配程度(相似度)比较高的结果排在前面。 没有匹配程度的控制:比如有记录中net出现5词和出现1次的,结果是一样的。
结果输出 通过特别的算法,将最匹配度最高的头100条结果输出,结果集是缓冲式的小批量读取的。 返回所有的结果集,在匹配条目非常多的时候(比如上万条)需要大量的内存存放这些临时结果集。
可定制性 通过不同的语言分析接口实现,可以方便的定制出符合应用需要的索引规则(包括对中文的支持) 没有接口或接口复杂,无法定制
结论 高负载的模糊查询应用,需要负责的模糊查询的规则,索引的资料量比较大 使用率低,模糊匹配规则简单或者需要模糊查询的资料量少
4.2.3 中文切分词机制
对于中文来说,全文索引首先还要解决一个语言分析的问题,对于英文来说,语句中单词之间是天然通过空格分开的,但亚洲语言的中日韩文语句中的字是一
个字挨一个,所有,首先要把语句中按“词”进行索引的话,这个词如何切分出来就是一个很大的问题。
首先,肯定不能用单个字符作(si-gram)为索引单元,否则查“上海”时,不能让含有“海上”也匹配。但一句话:“北京天安门”,计算机如何按照中文的语言习惯进行切分呢?“北京 天安门” 还是“北 京 天安门”?让计算机能够按照语言习惯进行切分,往往需要机器有一个比较丰富的词库才能够比较准确的识别出语句中的单词。另外一个解决的办法是采用自动切分算法:将单词按照2元语法(bigram)方式切分出来,比如:"北京天安门" ==> "北京 京天 天安 安门"。这样,在查询的时候,无论是查询"北京" 还是查询"天安门",将查询词组按同样的规则进行切分:"北京","天安安门",多个关键词之间按与"and"的关系组合,同样能够正确地映射到相应的索引中。这种方式对于其他亚洲语言:韩文,日文都是通用的。
基于自动切分的最大优点是没有词表维护成本,实现简单,缺点是索引效率低,但对于中小型应用来说,基于2元语法的切分还是够用的。基于2元切分后的索引一般大小和源文件差不多,而对于英文,索引文件一般只有原文件的30%-40%不同,
自动切分 词表切分
实现 实现非常简单 实现复杂
查询 增加了查询分析的复杂程度, 适于实现比较复杂的查询语法规则
存储效率 索引冗余大,索引几乎和原文一样大 索引效率高,为原文大小的30%左右
维护成本 无词表维护成本 词表维护成本非常高:中日韩等语言需要分别维护。
还需要包括词频统计等内容
适用领域 嵌入式系统:运行环境资源有限
分布式系统:无词表同步问题
多语言环境:无词表维护成本 对查询和存储效率要求高的专业搜索引擎
4.3 Lucene与Spider的结合
首先构造一个Index类用来实现对内容进行索引。
代码分析如下:
package news;
/**
* 新闻搜索引擎
* 计算机99630 沈晨
* 版本1.0
*/
import java.io.IOException;
import .ChineseAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexWriter;
public class Index {
IndexWriter _writer = null;
Index() throws Exception {
_writer = new IndexWriter("c:\\News\\index",
new ChineseAnalyzer(), true);
}
/**
* 把每条新闻加入索引中
* @param url 新闻的url
* @param title 新闻的标题
* @throws ng.Exception
*/
void AddNews(String url, String title) throws Exception {
Document _doc = new Document();
_doc.add(Field.Text("title", title));
_doc.add(Field.UnIndexed("url", url));
_writer.addDocument(_doc);
}
/**
* 优化并且清理资源
* @throws ng.Exception
*/
void close() throws Exception {
_writer.optimize();
_writer.close();
}
}
然后构造一个HTML解析类,把通过bot程序收集的新闻内容进行索引。
代码分析如下:
package news;
/**
* 新闻搜索引擎
* 计算机99630 沈晨
* 版本1.0
*/
import java.util.Iterator;
import java.util.Vector;
import com.heaton.bot.HTMLPage;
import com.heaton.bot.HTTP;
import com.heaton.bot.Link;
public class HTMLParse {
HTTP _http = null;
public HTMLParse(HTTP http) {
_http = http;
}
/**
* 对Web页面进行解析后建立索引
*/
public void start() {
try {
HTMLPage _page = new HTMLPage(_http);
_page.open(_http.getURL(), null);
Vector _links = _page.getLinks();
Index _index = new Index();
Iterator _it = _links.iterator();
int n = 0;
while (_it.hasNext()) {
Link _link = (Link) _it.next();
String _herf = input(_link.getHREF().trim());
String _title = input(_link.getPrompt().trim());
_index.AddNews(_herf, _title);
n++;
}
System.out.println("共扫描到" + n + "条新闻");
_index.close();
}
catch (Exception ex) {
System.out.println(ex);
}
}
/**
* 解决java中的中文问题
* @param str 输入的中文
* @return 经过解码的中文
*/
public static String input(String str) {
String temp = null;
if (str != null) {
try {
temp = new String(str.getBytes("ISO8859_1"));
}
catch (Exception e) {
}
}
return temp;
}
}
4.4小节
在进行海量数据搜索时,如果使用单纯的数据库技术,那将是非常痛苦的。速度将是极大的瓶颈。所以本章提出了使用全文搜索引擎Lucene进行索引、搜索。
最后,还结合了具体代码说明了如何把Lucene全文搜索引擎和Spider程序互相集合来实现新闻搜索的功能。
第五章 基于Tomcat的Web服务器
5.1什么是基于Tomcat的Web服务器
Web服务器是在网络中为实现信息发布、资料查询、数据处理等诸多应用搭建基本平台的服务器。Web服务器如何工作:在Web页面处理中大致可分为三个步骤,第一步,Web浏览器向一个特定的服务器发出Web页面请求;第二步,Web服务器接收到Web页面请求后,寻找所请求的Web页面,并将所请求的Web页面传送给Web浏览器;第三步,Web服务器接收到所请求的Web页面,并将它显示出来。
Tomcat是一个开放源代码、运行servlet和JSP Web应用软件的基于Java的Web应用软件容器。Tomcat由Apache-Jakarta子项目支持并由来自开放性源代码Java社区的志愿者进行维护。Tomcat Server是根据servlet和JSP规范进行执行的,因此我们就可以说Tomcat Server也实行了Apache-Jakarta规范且比
绝大多数商业应用软件服务器要好。
5.2用户接口设计
5.3.1客户端设计
一个良好的查询界面非常重??职称论文发表 QQ:455265204要,例如Googl就以她简洁的查询界面而闻名。我在设计的时候也充分考虑了实用性和简洁性。
查询界面截图如下:
搜索结果截图如下:
5.3.2服务端设计
主要利用JavaTM Servlet技术实现,用户通过GET方法从客户端向服务端提交查询条件,服务端通过Tomcat的Servlet容器接受并分析提交参数,再调用lucene的开发包进行搜索操作。最后把搜索的结果以HTTP消息包的形式发送至客户端,从而完成一次搜索操作。
服务端Servlet程序的结构如下:
实现的关键代码如下:
public void Search(String qc, PrintWriter out) throws Exception {
// 从索引目录创建索引
IndexSearcher _searcher = new IndexSearcher("c:\\news\\index");
// 创建标准分析器
Analyzer analyzer = new ChineseAnalyzer();
// 查询条件
String line = qc;
// Query是一个抽象类
Query query = QueryParser.parse(line, "title", analyzer);
out.println("");
out.println("");
out.println("");
out.println("
" +
"" +
"新闻搜索引擎:" +
"" +
"" +
"
"
);
out.println("
搜索关键字:" + query.toString("title") +
"
");
Hits hits = _searcher.search(query);
out.println(" 总共找到" + hits.length() +
"条新闻
");
final int HITS_PER_PAGE = 10;
for (int start = 0; start < hits.length(); start += HITS_PER_PAGE) {
int end = Math.min(hits.length(), start + HITS_PER_PAGE);
for (int i = start; i < end; i++) {
Document doc = hits.doc(i);
String url = doc.get("url");
if (url != null) {
out.println( (i + 1) + " " +
replace(doc.get("title"), qc) +
"
");}
else {
System.out.println("没有找到!");}
}}
out.println("");
_searcher.close();
};
5.3在Tomcat上部署项目
Tomcat中的应用程序是一个WAR(Web Archive)文件。WAR是Sun提出的一种Web应用程序格式,与JAR类似,也是许多文件的一个压缩包。这个包中的文件按一定目录结构来组织:通常其根目录下包含有Html和Jsp文件或者包含这两种文件的目录,另外还会有一个WEB-INF目录,这个目录很重要。通常在WEB-INF目录下有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的Servlet类和Jsp或Servlet所依赖的其它类(如JavaBean)。通常这些所依赖的类也可以打包成JAR放到WEB-INF下的lib目录下,当然也可以放到系统的CLASSPATH中。
在Tomcat中,应用程序的部署很简单,你
只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。编译以后,访问将会很快。
5.4小节
本章中详细介绍了如何构架基于Tomcat的Web服务器,使得用户通过浏览器进行新闻的搜索,最后还对Tomcat如何部署进行了说明。
第六章 搜索引擎策略
6.1简介
随着信息多元化的增长,千篇一律的给所有用户同一个入口显然已经不能满足特定用户更深入的查询需求。同时,这样的通用搜索引擎在目前的硬件条件下,要及时更新以得到互联网上较全面的信息是不太可能的。针对这种情况,我们需要一个分类细致精确、数据全面深入、更新及时的面向主题的搜索引擎。
由于主题搜索运用了人工分类以及特征提取等智能化策略,因此它比上面提到的前三代的搜索引擎将更加有效和准确,我们将这类完善的主题搜索引擎称为第四代搜索引擎。
6.2面向主题的搜索策略
6.2.1导向词
导向词就是一组关键词,它们会引导搜索器按照一定顺序搜索整个网络,使得搜索引擎可以在最短的时间里面得到最全面的跟某一个主题相关的信息。通过设置导向词以及它们对应的不同权值,所有标题、作者、正文或超连接文本中含有某一导向词的网页都会被赋予较高的权值,在搜索的时候会优先考虑。搜索器在向主控程序获得URL的时候也是按照权值由高到低的顺序。反之,搜索器在向主控程序提交新的URL和它的权值的时候,主控程序会按照权值预先排序,以便下一次有序的发给搜索器。
6.2.2网页评级
在考虑一个网页被另一个网页的引用时候,不是单纯的将被引用网页的Hit Number加一,而是将引用网页的连接数作为权,同时将该引用网页的重要性也考虑进来(看看上面提到的例子,Yahoo!引用的网页显然比个人网站引用的网页重要,因为Yahoo!本身很重要),就可以得到扩展后的网页评分。
最早提出网页评分的计算方法是Google。它们提出了一个“随机冲浪”模型来描述网络用户对网页的访问行为。模型假设如下:
1) 用户随机的选择一个网页作为上网的起始网页;
2) 看完这个网页后,从该网页内所含的超链内随机的选择一个页面继续进行浏览;
3) 沿着超链前进了一定数目的网页后,用户对这个主题感到厌倦,重新随机选择一个网页进行浏览,并重复2和3。
按照以上的用户行为模型,每个网页可能被访问到的次数就是该网页的链接权值。如何计算这个权值呢?PageRank采用以下公式进行计算:
其中Wj代表第j个网页的权值;lij只取0、1值,代表
从网页i到网页j是否存在链接;ni代表网页i有多少个链向其它网页的链接;d代表“随机冲浪”中沿着链接访问网页的平均次数。选择合适的数值,递归的使用以上公式,即可得到理想的网页链接权值。该方法能够大幅度的提高简单检索返回结果的质量,同时能够有效的防止网页编写者对搜索引擎的欺骗。因此可以将其广泛的应用在检索器提供给用户的网页排序上,对于网页评分越高的网页,就排的越前。
6.2.3权威网页和中心网页
权威网页
顾名思义,是给定主题底下的一系列重要的权威的网页。其重要性和权威性主要体现在以下两点:
1) 从单个网页来看,它的网页内容本身对于这个给定主题来说是重要的;
2) 从这个网页在整个互联网重的地位来看,这个网页是被其他网页承认为权威的,这主要体现在跟这个主题相关的很多网页都有链接指向这个网页。
由此可见,权威网页对于主题搜索引擎的实现有很重大的意义。主题搜索引擎一个很关键的任务就是从互联网上无数的网页之中最快最准的找出这些可数的权威网页,并为他们建立索引。这也是有效区别主题搜索引擎和前三代传统通用搜索引擎的重要特征。
中心网页
是包含很多指向权威网页的超链接的网页。最典型中心网页的一个例子是Yahoo!,它的目录结构指向了很多主题的权威网页,使得它兼任了很多主题的中心网页。由中心网页出发,轻而易举的就会到达大量的权威网页。因此,它对于主题搜索引擎的实现也起了很大的意义。
权威网页和中心网页之间是一种互相促进的关系:一个好的中心网页必然要有超链接指向多个权威网页;一个好的权威网页反过来也必然被多个中心网页所链接。
6.3小节
本章介绍了面向主题的搜索策略,并作了详细阐述。虽然在新闻搜索中并没有应用到搜索策略,但是对于WWW搜索引擎来说,搜索策略是极其重要的。他直接关系到搜索的质量以及匹配度等性能。
参考文献
文献资料
① 《Programming Spiders,Bots,and Aggregator in Java》[美]Jeff Heaton著
② 《搜索引擎与信息获取技术》徐宝文、张卫丰著
③ 《基于Java的全文搜索引擎Lucene》车东著
④ 《主题搜索引擎的设计与实现》罗旭著
⑤ 《Thinking in Java 》[美]Bruce Eckel著
开发工具、平台及资源:
① Borland Jbuilder 9
② Sun JDK 1.4.1
③ Jakarta Tomcat 4.1
④ Jakarta Lucene
⑤ Package Bot