了解搜索引擎技术

转载 2015年07月10日 14:36:16

转载自:http://www.cnblogs.com/gaoweipeng/archive/2009/09/20/1570357.html

了解搜索引擎技术

此文纯理论知识,很不错的搜索引擎的资料。

搜索引擎的定义

搜索引擎是传统IR技术在Web环境中的应用。一般来说,搜索引擎是一种用于帮助用户在Internet上查询信息的搜索工具,它以一定的策略在Internet中搜索,发现信息,对信息进行理解,提取,组织和处理,并为用户提供检索服务,从而起到信息导航的目的。

搜索引擎的体系结构

典型的搜索引擎结构一般由以下三个模块组成:信息采集模块(Crawler),索引模块(Indexer),查询模块(Searcher)。

Crawler:从web中采集网页数据
Indexer:对Crawler采集数据进行分析生成索引。
Searcher:接受查询请求,通过一定的查询算法获取查询结果,返回给用户。

-->Crawler
Crawler负责页面信息的采集,工作实现基于以下思想:既然所有网页都可能链接到其他网站,那么从一个网站开始,跟踪所有网页上的所有链接,就有可能检索整个互联网。Crawler首先从待访问URL队列中获取URLs,根据URL从中抓取网页数据,然后对网页进行分析,从中获取所有的URL链接,并把它们放到待访问的URL队列中,同时将已访问URL移至已访问的URL队列中。不断重复上面的过程。
Crawler存在以下的关键问题:
>多线程抓取时的任务调度问题:
搜索引擎会产生多个Crawler同时对网页进行抓取,这里需要一个好的分布式算法,使得既不重复抓取网页,又不漏掉重要的站点。
>网页评估
在抓取网页时存在一定的取舍,一般只会抓20%左右的网页。评估算法中典型的油Google发明的Pgaerank。
>更新策略
每经过一段时间,Crawler对以抓取的数据经行更新,保证索引网页是最新的。
>压缩算法
网页抓取后,通过一定的压缩机制保存到本地,从而减少存储容量,同时也减少各服务器之间的网络通信开销

-->Indexer
搜索引擎在完成用户的检索请求时,并不是即时的检索Web数据,而是从预先采集的网页数据中获取。要实现对采集页面的快速访问,必须通过某种检索机制来完成。
页面数据可以用一系列关键字来表示,从检索毙敌来说,这些关键词描述了页面的内容,只要找到页面,便可以找到其中的关键词,反过来,通过关键词对页面创建索引,便可以根据关键字快速的找到相应的网页。

Indexer中存在的问题:
>索引存储:
一般来讲,数据量和索引量的比例接近1:1。索引的存储一般采用分布式策略,检索的数据分布在不同的服务器上。Google存储索引的服务器大概有1000多台。
>索引更新:
页面数据更新时,索引数据必须相应的更新。更新策略一般采用增量索引方式。
>索引压缩:
索引也存在数据压缩的问题。索引压缩是通过对具体索引格式的研究实现压缩。
>网页相似性支持:
索引的结构还必须为网页相似性分析提供支持。
>多语言,多格式支持:
网页数据具有多种编码格式,通过Unicode,索引支持多种编码查询。同时索引还必须有对Word,Excel等文件格式进行分析的功能。

-->Searcher
Searcher是直接与用户进行交互的模块,在接口上有多种实现的方式,常见的主要是Web方式。
Searcher通过某种接口方式,接受用户查询,对查询进行分词(stemming)处理,获取查询关键字。通过Indexer获取与查询关键字匹配的网页数据,经过排序后返回给用户。
Searcher中的问题:
>检索结果的排序:
对不同的用户采用不同的排序策略。
>排序结果排重:
排重可以提高结果数据的质量。
>检索结果的相似性分析:
主要用在类似网页功能中,需要在索引结构中提供支持。
>检索的速度:
主要依赖索引结构的设计。同时在体系结构上还有很多技术可以用来提升速度。如:Cache,负载均衡等。

相关核心技术:

 分布式技术:
当搜索引擎处理数据达到一定规模时,为了提高系统的性能,必须采用分布式技术。Crawler通过多个服务器互相合作,提高数据采集的速度。Indexer在生成索引数据时通过并行算法,在不同机器上同时进行。Searcher也可以在不同的机器上进行同时查询,提高速度。
中文分词:
分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。现有分词算法可以分为三大类:基于字符串比配的的分词方法,基于理解的分词方法和基于统计的分词方法。
网页排序:
现在搜索引擎中网页的 排序主要利用了页面间的链接关系,描述链接的文本以及文本自身内容,重要的链接分析算法有Hits和Pagerank,HillTop等。
海量数据存储:
搜索引擎的挑战之一就是处理数据的巨大,如何存储如此大的数据,数据的更新,快速的检索...
压缩技术:
压缩技术极大的减少了数据的大小,对于不同类型的数据,需要采用不同的压缩方法,主要的数据压缩主要有:网页数据的压缩和索引数据的压缩。选择压缩技术主要从开放性,速度与压缩比等多方面进行综合考虑。Google中选择了Alib(RFC1950)进行压缩,在压缩速度上Zlib超过Bzip,压缩比上Bzip好于Zlib。

了解搜索引擎技术

此文纯理论知识,很不错的搜索引擎的资料。  搜索引擎的定义  搜索引擎是传统IR技术在Web环境中的应用。一般来说,搜索引擎是一种用于帮助用户在Internet上查询信息的搜索工具,它以一定的...
  • u011393661
  • u011393661
  • 2014年04月07日 18:26
  • 456

中文搜索引擎技术揭密

系统架构    互联网在近10年的得到飞速发展,互联网正在逐渐深入人们的生活,改变人们的生活。互联网经济也经历了风风雨雨,从缓慢起步到急速膨胀,从泡沫破灭到逐步回暖;从“网络广告”到“拇指经济”,从“...
  • qdzx2008
  • qdzx2008
  • 2006年02月19日 21:56
  • 2564

《解密搜索引擎技术实战:Lucene&Java精华版》---第四章中文分词原理与实现学习笔记(一)

在中文分词过程中,我们不可避免的要用到词典,词典中最基本的格式是每行有一个词,而词典中的内容往往数据量很大,为了保证我们在分词过程中的切分速度,选择一个好的词典查找算法就显得尤为重要。 下面...
  • sinat_32332805
  • sinat_32332805
  • 2017年02月23日 14:27
  • 449

搜索引擎技术简介

1.系统结构:抓取网页建立索引库在索引库中搜索结果排序主要的数据结构 倒排索引(inverted indexing list)这种数据结构广泛地应用在今天包括Web搜索引擎在内的各种信息检索系统中。...
  • litchidong
  • litchidong
  • 2004年10月20日 14:39
  • 585

搜索引擎核心技术笔记

搜索引擎发展史 1 分类目录:hao123 人工整理 2 文本检索:使用布尔模型、向量空间模型或者概率模型计算查询词和网页文本内容的相关程度 未考虑网页之间的链接关系 3 链接分析:googl...
  • qq100440110
  • qq100440110
  • 2016年11月02日 22:20
  • 321

解密搜索引擎技术实战:Lucene&Java精华版

http://book.51cto.com/art/201106/269032.htm
  • IT_YUAN
  • IT_YUAN
  • 2013年05月09日 15:28
  • 1359

搜索引擎技术

搜索引擎一直专注于提升用户的体验度,其用户体验度则反映在三个方面:准、全、快。用专业术语讲是:查准率、查全率和搜索速度(即搜索耗时)。其中最易达到的是搜索速度,因为对于搜索耗时在1秒以下的系统来说,访...
  • MSDA
  • MSDA
  • 2007年09月11日 14:01
  • 1018

垂直搜索引擎技术

一、什么是垂直搜索      垂直搜索是针对某一个行业的专业搜索引擎,是搜索引擎的细分和延伸,是对网页库中的某类专门的信息进行一次整合,定向分字段抽取出需要的数据进行处理后再以某种形式返回给用户。  ...
  • sxd78
  • sxd78
  • 2007年08月25日 15:07
  • 474

搜索引擎技术:系统架构

互联网发展的今天,一方面离不开其开放、共享的特性带给人们的全新体验,另一方面也离不开数以亿计的为其提供各类丰富内容的网络节点。互联网被普及前,人们查阅资料第一想到的便是拥有大量书籍资料的图书馆,到了今...
  • jacky_20001
  • jacky_20001
  • 2007年02月10日 13:34
  • 568

搜索引擎技术学习

       回家看看……       好久没有来csdn博客了,这都成了荒地。       好久没有敲键盘写程序了,时间都沉寂在激烈的游戏里。       好多同学、好友保研,找到适合的工作了,而我...
  • mildforest
  • mildforest
  • 2007年12月02日 16:03
  • 363
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:了解搜索引擎技术
举报原因:
原因补充:

(最多只允许输入30个字)