`
king_tt
  • 浏览: 2106494 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

了解搜索引擎技术

 
阅读更多

百度、Google搜索引擎核心技术是怎么实现的

搜索引擎

搜索引擎(search engine)是指根据一定的策略、运用特定的计算机程序搜集互联网上的信息,在对信息进行组织和处理后,并将处理后的信息显示给用户,是为用户提供检索服务的系统。

全文搜索引擎是名副其实的搜索引擎,国外代表有Google,国内则有著名的百度搜索。它们从互联网提取各个网站的信息(以网页文字为主),建立起数据库,并能检索与用户查询条件相匹配的记录,按一定的排列顺序返回结果。

根据搜索结果来源的不同,全文搜索引擎可分为两类,一类拥有自己的检索程序(Indexer),俗称“蜘蛛”(Spider)程序或“机器人”(Robot)程序,能自建网页数据库,搜索结果直接从自身的数据库中调用,上面提到的Google和百度就属于此类;另一类则是租用其他搜索引擎的数据库,并按自定的格式排列搜索结果,如Lycos搜索引擎。

用户输入关键词进行检索,搜索引擎从索引数据库中找到匹配该关键词的网页;为了用户便于判断,除了网页标题和URL外,还会提供一段来自网页的摘要以及其他信息。

搜索引擎一般由搜索器、索引器、检索器和用户接口四个部分组成:
①搜索器:其功能是在互联网中漫游,发现和搜集信息;
②索引器:其功能是理解搜索器所搜索到的信息,从中抽取出索引项,用于表示文档以及生成文档库的索引表;
③检索器:其功能是根据用户的查询在索引库中快速检索文档,进行相关度评价,对将要输出的结果排序,并能按用户的查询需求合理反馈信息;
④用户接口:其作用是接纳用户查询、显示查询结果、提供个性化查询项。

纯净搜索引擎
这类搜索引擎没有自己的信息采集系统,利用别人现有的索引数据库,主要关注检索的理念、技术和机制等。

垂直搜索引擎
垂直搜索引擎是相对通用搜索引擎的信息量大、查询不准确、深度不够等提出来的新的搜索引擎服务模式,通过针对某一特定领域、某一特定人群或某一特定需求提供的有一定价值的信息和相关服务。其特点就是“专、精、深”,且具有行业色彩,相比较通用搜索引擎的海量信息无序化,垂直搜索引擎则显得更加专注、具体和深入。

转载声明: 本文转自 http://blog.sina.com.cn/s/blog_465f50b90100ftj5.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。

转载声明: 本文转自 http://www.cnblogs.com/gaoweipeng/archive/2009/09/20/1570357.html(博客园)

================================================================================

分享到:
评论

相关推荐

    搜索引擎技术培训

    搜索引擎技术培训的了解

    搜索引擎技术之数据结构

    搜索引擎技术之数据结构,了解搜索引擎的数据结构及其原理

    网站搜索引擎优化考试答案

    不了解搜索引擎工作原理,也就无从替搜索引擎解决一些SEOer力所能及的技术问题。 (3)很多SEO技巧是基于对搜索引擎的理解,比如原创、标题、链接等。 叙述搜索引擎营销过程。 (1)用户搜索关键词寻找自己需要的...

    搜索引擎优化课件.zip

    搜索引擎优化,又称为SEO,即Search Engine Optimization,它是一种通过分析搜索引擎的排名规律,了解各种搜索引擎怎样进行搜索、怎样抓取互联网页面、怎样确定特定关键词的搜索结果排名的技术。搜索引擎采用易于被...

    搜索引擎优化技术

    了解搜索引擎优化技术基础知识

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

    2011年罗刚出版的精华版。 详细介绍了lucene内部的工作原理,解析透彻。结合原理了解新的版本lucene有很大帮助

    sousuoyinqin.zip_搜索引擎

    搜索引擎关键技术,初步了解搜索引擎关键技术,了解搜索引擎实现原理。

    解密:快速写出一篇符合搜索引擎规则的SEO文章或软文.docx

    所有我们写的文章不光是给人看的,而且更重要的是让搜索引擎“看的懂”,实际上这里大家就能知道一点:文章写的再好无法让搜索引擎喜欢或者在不了解搜索引擎规则的条件下撰写的文章想要通过搜索引擎来引流的想法基本...

    搜索引擎介绍 技术入门

    关于搜索引擎的算法 描述 中英文结合 有助于初学者了解搜索引擎的原理 进而更好的为以后学习打下坚实的基础

    这就是搜索引擎核心技术详解@学习笔记

    具体想了解更多详细原理信息,可以购买作者的图书《这就是搜索引擎核心技术详解》,这里不是广告啊。如果你是技术流,建议不要购买。如果是在校的学生,可以看看图书馆是否有此本书,一定不要浪费图书馆这个好的资源...

    这就是搜索引擎-核心技术详解

    该资源这就是搜索引擎-核心技术详解中详细的讲解了搜索引擎的各个基础的知识,比较适合初学者了解搜索引擎。里面对倒排索引的构造以及搜索引擎索引的架构、构建方法以及各种高级优化方法有详细的介绍。

    搜索引擎课件

    详细的搜索引擎介绍与分析,从它的发展历程,核心技术都有完备介绍,想对搜索引擎有全面的了解,来这里准不会错

    搜易站内搜索引擎V1.2

    搜易站内搜索引擎(SearchEasy Site Search Engine)是面向互联网网站的站内搜索解决方案,其针对网站使用数据库搜索性能差,体验差等问题,将搜索引擎技术应用于站内搜索;本系统具备中文分词,智能摘要,关键词...

    自己动手写搜索引擎(罗刚著).doc

    第1章 了解搜索引擎 1 1.1 Google神话 1 1.2 体验搜索引擎 1 1.3 你也可以做搜索引擎 4 1.4 本章小结 4 第2章 遍历搜索引擎技术 5 2.1 30分钟实现的搜索引擎 5 2.1.1 准备工作环境(10分钟) 5 2.1.2 编写代码(15...

    解密搜索引擎技术实战:Lucene in java(第2版)源码 dvd ppt

    刚刚入手的书,和大家分享,内有ppt和部分源码,有想了解的朋友抓紧时间下载……非常值得学习的

    搜索引擎原理、技术、系统(2004年)

    关于搜索引擎的详细介绍,想了解搜索引擎原理的朋友有必要认真读读。

    搜索引擎代码

    2.增加搜索排行榜和搜索日志统计功能,使用户和管理员都可以轻松了解搜索关键词的热度。(重要) 3.增加脏字黑名单,使不和谐的关键词绝对不会出现在搜索排行榜中。 4.完善竞价推广功能,客户可以针对一个推广广告...

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

    对与学习搜索引擎,了解去工作原理,很有帮助

    搜索链接淘特搜索引擎共享版-tot-search-engine.rar

    无论是作为毕业设计还是课程设计,这个文件包都能为你提供一个很好的参考和实践机会,帮助你深入了解搜索引擎的原理和实现过程。总之,淘特搜索引擎共享版_tot_search_engine.rar是一个实用且具有教育意义的资源,...

    全文搜索引擎

    先了解百度搜索是怎么做的吗?先知道百度搜索中涉及到了那些技术吗?呵呵

Global site tag (gtag.js) - Google Analytics