精华内容
下载资源
问答
  • [搜索引擎友好之路]是我准备写的一本书,现在大部分网站都丰富的内容,但是他们为了得到流量去尝试那些搜索引擎作弊方法,往往是一时得到好处,最后被搜索引擎屏蔽。我们倡导的与搜索引擎友好的优化方式就是试图更...
     [搜索引擎友好之路]是我准备写的一本书,现在大部分网站都有丰富的内容,但是他们为了得到流量去尝试那些搜索引擎作弊方法,往往是一时得到好处,最后被搜索引擎屏蔽。我们倡导的与搜索引擎友好的优化方式就是试图更好的展现你的内容,达到网站和搜索引擎共赢的局面。下面的问题是一次去给客户做培训后,客户提出的问题和我们的回答。
    

    1、程序生成很多的静态内容链接自己,算不算作弊?

    一个行为算不算作弊,主要是度的问题。生成很多垃圾的静态内容(采集来的,胡乱生成的),只要达到一定的量,一般是会被判定为内容重复或者作弊的,可能会 被降低权重或者删除索引。实际上我们知道现在很多网站自己的内容很丰富,把自己的内容展现好了,就会带来很多好处,不需要去胡乱采集。

    2、flash对网站收录的影响

    flash本身没有任何不好的影响。而常见的错误的行为是对flash的滥用。
    比如,整站全部用flash,设计者或者唯界面论者可能会这么做。其实这样并不好,第一是速度往往会很慢,而且有可能会长时间等待;第二是干扰用户习惯, 很多人打着提高用户感受的旗号去滥用flash,那样做出来的作品,如果说欣赏或者只是试用往往还不错,长期使用用户往往忍受不了;第三是整站所有的内容 无法被搜索引擎收录。
    还有很常见的滥用是内容页面很丰富,但是首页只有一个flash而没有任何文本链接可以帮助用户进入下一级页面。这类问题往往出现在一些大公司的网站中。 虽然确实很美观,但是问题也很多。第一也是速度,网民多数没有耐心,看到一个长长的loading条就会迅速离开;第二,如果用户不安装flash插件, 就无法看到首页,从而无法进入本无需flash的内容页;第三,搜索引擎无法穿过首页去访问后面的页面。所以我们会发现很多公司的网站pagerank很 高,但是内容页面完全没有pagerank。所以在搜索引擎搜索产品名字,往往是第三方的网站排在前面。这类网站最好在下端放一个二级栏目的导航条,至少 也要放一个“点击这里跳过flash直接进入内容”的链接。

    3、no script有用么?

    当然有用。现在很多网站喜欢用Javascript特殊效果或者Ajax,这本身没并不是问题。但是,如果用Javascript来显示网站的导航,就有 两个问题,第一,对于不打开Javascript的用户,他们无法进入网站的内部;第二,搜索引擎往往无法收录Javascript展现的链接。no script可以解决这个问题。 包含在 noscript标记内的代码会在不打开Javascript的用户的浏览器上面展现,搜索引擎也可以从中获取导航信息。
    但是,最好的选择还是,导航本身使用标准HTML代码,导航的特殊效果用css和Javascript实现。以后我们会有专门的文章阐述Ajax网站如何进行搜索引擎优化。

    4、更新频率应该多高才适合?

    更新频率理论上当然是越快越好,但是并不推荐没有内容胡乱更新。现在大部分网站的内容都很丰富,更新频率已经足够了。

    5、js生成的更新,能不能被收录?

    跟Javascript有关的问题,答案其实都一样,用Javascript生成的链接,大部分搜索引擎的爬虫不会去抓取,自然也就不会被收录了。

    6、不愿和外部网站交换链接会有什么影响?

    不愿意交换链接自然对Pagerank有不好的影响。但是如果你的内容确实好,自然会有用户主动链接你的页面,这样你的PageRank自然会得到提高。

    7、抓外站新闻对SEO有用么?

    用处不大,抓外站新闻得到的内容实际上都是所谓的重复内容,价值并不高。

    8、和外站交换链接,放什么位置重要么?

    重要,当然是Pagerank越高的页面越好,位置越前越好。

    9、大型网站会给其他网站做链接么?要多少钱?

    交换链接一般是双赢,所以只要你的网站质量达到一定水平,交换链接并不难。一般不要钱,要钱的反而需要警惕,这是搜索引擎禁止的行为。

    10、在网站中,同一级的页面,是PageRank越高,抓取频率越高么?

    对,Pagerank、整站信用级别和页面更新频率共同影响抓取频率,所以Pagerank越高抓取频率越高。

    11、Robot.txt对SEO有什么影响?

    Robot.txt很有价值,但是一般被站长低估和误解。很多人认为只有防止搜索引擎技术抓取的时候才有用。但是实际上正确使用Robot.txt对 SEO很有好处,比如重复内容用不同形式表现是经常需要的,而这种情况很容易被搜索引擎判定为重复内容堆砌。正确利用Robot可以引导搜索引擎只收录首 选内容这样就不会有作弊嫌疑了。(参见:google网站管理员blog的文章“ 巧妙地处理内容重复”)
    除了处理重复外,Yahoo允许你在Robot.txt文件里面用Crawl-delay:参数设定抓取频率(参看: 如何控制Yahoo! Slurp蜘蛛的抓取频度)。Sitemap协议支持你在Robot.txt文件里填写Sitemap参数(参看: Specifying the Sitemap location in your robots.txt file)。

    12、二级域名能有多大的好处?

    好处不大,如果用户喜欢的话,就用吧。

    13、用户页面的url,用文字还是数字好?

    如果用户名不允许中文,那么文字比较好,虽然汉字也可以用在url中,但是总是有些浏览器的支持不够好。如果用户名允许中文,就用数字吧。基本上这不是一个很重要的选择,虽然搜索引擎技术也会把url里面的文字当作可被查询的内容。

    14、flash meta data对SEO有何影响?

    未来可能很重要,但是现在应该还没有多少搜索引擎支持这项技术。

    15、爬虫有没有关于Ajax的抓取计划?

    Googlebot也就是Google的标准蜘蛛,是不支持Javascript的。但是Mediapartners-Google也就是Google Adsense的爬虫,实际上是支持Javascript的。这也就是说技术层面考虑支持Javascript并不是一个问题。但是限于效率和任务优先级 的考虑,Google暂时还没打算让标准蜘蛛Googlebot支持Javascript。
    百度的爬虫支持一部分Javascript,但是由于技术和效率的限制,相信百度也不能抓取100%的Javascript内容。

    16、在js代码中放url有用么?

    答案显而易见,没用。
    展开全文
  • 搜索引擎

    万次阅读 2017-09-06 12:00:45
    Baiduspider常见问题解答什么是BaiduspiderBaiduspider是百度搜索引擎的一个自动程序,它的作用是访问互联网上的网页,建立索引数据库,使用户能在百度搜索引擎中搜索到您网站上的网页。Baiduspider的user-agent是...

    Baiduspider常见问题解答

    什么是Baiduspider

    Baiduspider是百度搜索引擎的一个自动程序,它的作用是访问互联网上的网页,建立索引数据库,使用户能在百度搜索引擎中搜索到您网站上的网页。

    Baiduspider的user-agent是什么?

    百度各个产品使用不同的user-agent:

    产品名称对应user-agent
    网页搜索Baiduspider
    移动搜索Baiduspider
    图片搜索Baiduspider-image
    视频搜索Baiduspider-video
    新闻搜索Baiduspider-news
    百度搜藏Baiduspider-favo
    百度联盟Baiduspider-cpro
    商务搜索Baiduspider-ads

    如何区分PC与移动网页搜索的UA

    PC搜索完整UA:

    Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)

    移动搜索完整UA:

    Mozilla/5.0 (Linux;u;Android 4.2.2;zh-cn;) AppleWebKit/534.46 (KHTML,like Gecko) Version/5.1 Mobile Safari/10600.6.3 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)

    pc ua:通过关键词Baiduspider/2.0来确定是pc ua

    移动ua:通过关键词android和mobile确定是来自移动端抓取访问,Baiduspider/2.0 确定为百度爬虫。

    Baiduspider对一个网站服务器造成的访问压力如何?

    为了达到对目标资源较好的检索效果,Baiduspider需要对您的网站保持一定量的抓取。我们尽量不给网站带来不合理的负担,并会根据服务器承受能力,网站质量,网站更新等综合因素来进行调整。如果您觉得baiduspider的访问行为有任何不合理的情况,您可以反馈至反馈中心。

    为什么Baiduspider不停的抓取我的网站?

    对于您网站上新产生的或者持续更新的页面,Baiduspider会持续抓取。此外,您也可以检查网站访问日志中Baiduspider的访问是否正常,以防止有人恶意冒充Baiduspider来频繁抓取您的网站。 如果您发现Baiduspider非正常抓取您的网站,请通过投诉平台反馈给我们,并请尽量给出Baiduspider对贵站的访问日志,以便于我们跟踪处理。

    如何判断是否冒充Baiduspider的抓取?

    建议您使用DNS反查方式来确定抓取来源的ip是否属于百度,根据平台不同验证方法不同,如linux/windows/os三种平台下的验证方法分别如下:

    1.在linux平台下,您可以使用host ip命令反解ip来判断是否来自Baiduspider的抓取。Baiduspider的hostname以 .baidu.com 或 .baidu.jp 的格式命名,非 .baidu.com 或 .baidu.jp 即为冒充。

    $ host 123.125.66.120
    120.66.125.123.in-addr.arpa domain name pointer
    baiduspider-123-125-66-120.crawl.baidu.com.
    
    host 119.63.195.254
    254.195.63.119.in-addr.arpa domain name pointer
    BaiduMobaider-119-63-195-254.crawl.baidu.jp.

    2.在windows平台或者IBM OS/2平台下,您可以使用nslookup ip命令反解ip来判断是否来自Baiduspider的抓取。打开命令处理器 输入nslookup xxx.xxx.xxx.xxx(IP地址)就能解析ip, 来判断是否来自Baiduspider的抓取,Baiduspider的hostname以 .baidu.com 或 .baidu.jp 的格式命名,非 .baidu.com 或 .baidu.jp 即为冒充。

    3.在mac os平台下,您可以使用dig 命令反解ip来 判断是否来自Baiduspider的抓取。打开命令处理器 输入dig xxx.xxx.xxx.xxx(IP地 址)就能解析ip, 来判断是否来自Baiduspider的抓取,Baiduspider的hostname以 .baidu.com 或 .baidu.jp 的格式命名,非 .baidu.com 或 .baidu.jp 即为冒充。

    我不想我的网站被Baiduspider访问,我该怎么做?

    Baiduspider遵守互联网robots协议。您可以利用robots.txt文件完全禁止Baiduspider访问您的网站,或者禁止Baiduspider访问您网站上的部分文件。 注意:禁止Baiduspider访问您的网站,将使您的网站上的网页,在百度搜索引擎以及所有百度提供搜索引擎服务的搜索引擎中无法被搜索到。关于robots.txt的写作方法,请参看我们的介绍:robots.txt写作方法

    您可以根据各产品不同的user-agent设置不同的抓取规则,如果您想完全禁止百度所有的产品收录,可以直接对Baiduspider设置禁止抓取。

    以下robots实现禁止所有来自百度的抓取:

    User-agent: Baiduspider Disallow: /

    以下robots实现禁止所有来自百度的抓取但允许图片搜索抓取/image/目录:

    User-agent: Baiduspider Disallow: /
    
    User-agent: Baiduspider-image Allow: /image/

    请注意:Baiduspider-cpro抓取的网页并不会建入索引,只是执行与客户约定的操作,所以不遵守robots协议,如果Baiduspider-cpro给您造成了困扰,请联系union1@baidu.com。 Baiduspider-ads抓取的网页并不会建入索引,只是执行与客户约定的操作,所以不遵守robots协议,如果Baiduspider-ads给您造成了困扰,请联系您的客户服务专员。

    为什么我的网站已经加了robots.txt,还能在百度搜索出来?

    因为搜索引擎索引数据库的更新需要时间。虽然Baiduspider已经停止访问您网站上的网页,但百度搜索引擎数据库中已经建立的网页索引信息,可能需要数月时间才会清除。另外也请检查您的robots配置是否正确。
    如果您的拒绝被收录需求非常急迫,也可以通过投诉平台反馈请求处理。

    我希望我的网站内容被百度索引但不被保存快照,我该怎么做?

    Baiduspider遵守互联网meta robots协议。您可以利用网页meta的设置,使百度显示只对该网页建索引,但并不在搜索结果中显示该网页的快照。
    和robots的更新一样,因为搜索引擎索引数据库的更新需要时间,所以虽然您已经在网页中通过meta禁止了百度在搜索结果中显示该网页的快照,但百度搜索引擎数据库中如果已经建立了网页索引信息,可能需要二至四周才会在线上生效。

    Baiduspider抓取造成的带宽堵塞?

    Baiduspider的正常抓取并不会造成您网站的带宽堵塞,造成此现象可能是由于有人冒充Baiduspider恶意抓取。如果您发现有名为Baiduspider的agent抓取并且造成带宽堵塞,请尽快和我们联系。您可以将信息反馈至投诉平台,如果能够提供您网站该时段的访问日志将更加有利于我们的分析。


    一般情况下,大多数网站创建者或管理员都会在网站的根目录放置一个名为robots.txt的文本文件,用来控制自己的网站哪些目录允许SE搜索引擎[1] 爬行并收录,哪些目录禁止搜索引擎收录,Disallow,正是robots.txt文件中设置禁止搜索引擎收录哪些目录的一个词语。

    例子:
    允许所有SE(搜索引擎)收录本站:robots.txt为空就可以,什么都不要写。
    禁止所有SE(搜索引擎)收录网站的某些目录:

    User-agent: *
    Disallow: /目录名1/
    Disallow: /目录名2/
    Disallow: /目录名3/

    禁止某个SE(搜索引擎)收录本站,例如禁止百度:

    User-agent: Baiduspider
    Disallow: /

    禁止所有SE(搜索引擎)收录本站:

    User-agent: *
    Disallow: /

    它的用途是告诉上一子集,确定某个对象用的。

    什么是robots.txt

    robots.txt是一个纯文本txt文件,用在网站服务器上。它是搜索引擎访问网站的时候要查看的第一个文件,robots.txt文件告诉搜索引擎在服务器上什么文件是可以被查看的,哪些网页可以收录,哪些不允许收录,对与seo优化而言,放置一个robots.txt是对搜索引擎友好的表现,robots.txt必须放置在一个站点的根目录下,且文件名必须全部小写。

    robots.txt作用

    robots.txt主要作用是保障网络安全与网站隐私,搜索引擎遵循robots.txt协议。通过根目录中创建的纯文本文件robots.txt,网站就可以声明哪些页面不想被搜索引擎爬行并收录,每个网站都可以自主控制网站是否愿意被搜索引擎收录,或者指定搜索引擎只收录指定的内容。当搜索引擎访问某个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果该文件不存在,那么爬虫就沿着链接抓取,如果存在,爬虫就会按照该文件中的内容来确定访问的范围。

    robots.txt文件的格式

    User-agent:_____ 空白处为定义搜索引擎的类型;
    Crawl-delay:_____ 空白处为定义抓取延迟;
    Disallow:_____ 空白处为定义禁止搜索引擎收录的地址;
    Allow:_____ 空白处为定义允许搜索引擎收录的地址;

    360搜索对Robots协议的支持

    360搜索支持Robots协议的主要命令,以下为具体说明:

    user-agent

    360搜索支持user-agent命令,包括使用通配符的user-agent命令。360搜索各产品的爬虫user-agent为:

    • 网页搜索 360Spider
    • 网页搜索 HaoSouSpider

    360搜索将优先使用HaoSouSpider来访问站点,如果遇到UA识别无法下载页面,会再用 360spider抓取,蜘蛛IP不更改。

    • 图片搜索 360Spider-Image

    • 视频搜索 360Spider-Video

    Allow

    站长可通过Allow命令指定建议收录的文件、目录 。

    Disallow

    站长可通过Disallow命令指定不建议收录的文件、目录。

    360搜索对Robots协议的扩展

    360搜索根据站长们的反馈,会陆续推出扩展的Robots协议命令。这些命令将能帮助站长们提高和360搜索爬虫沟通的效率,减少站长们维护Robots协议文件的技术成本。

    360搜索首个扩展命令是:indexpage,站长们可以使用此命令告知360搜索哪些网页经常更新。360搜索会根据站长的指示以及自己的算法,智能调整爬虫抓取频率,实现对您网站新内容的更高频率抓取。

    在命令中可以使用*、$等通配符。

    示例:

    使用通配符的

    Indexpage: http://bbs.360safe.com/forum-*-1.html$
    
    Indexpage: http://ent.sina.com.cn/*/roll.html

    不用通配符的:

    Indexpage: http://roll.tech.sina.com.cn/internet_all/index.shtml
    
    Indexpage: http://roll.tech.sina.com.cn/it/index.shtml
    
    Indexpage: http://roll.tech.sina.com.cn/tele/index.shtml
    
    Indexpage: http://roll.tech.sina.com.cn/discovery/index.shtml
    
    Indexpage: http://roll.tech.sina.com.cn/elec/index.shtml

    对Robots协议的善意使用

    Robots协议是一个搜索引擎和网站之间的善意协议,我们鼓励站长们也以善意的方式使用这一协议,尽量提供准确的信息,除非有充足理由,不使用Robots协议屏蔽某些特定搜索引擎爬虫。

    360搜索愿和站长们一起,共建一个更健康、公平、透明的搜索引擎生态系统。

    展开全文
  • ElasticSearch搜索引擎常见面试题总结

    千次阅读 多人点赞 2021-04-10 22:12:52
    Elasticsearch 是基于 Lucene 的 Restful 的分布式实时全文搜索引擎,每个字段都被索引并可被搜索,可以快速存储、搜索、分析海量的数据。 全文检索是指对每一个词建立一个索引,指明该词在文章中出现的次数和位置...

    一、ElasticSearch基础:

    1、什么是Elasticsearch:

    Elasticsearch 是基于 Lucene 的 Restful 的分布式实时全文搜索引擎,每个字段都被索引并可被搜索,可以快速存储、搜索、分析海量的数据。




    全文检索是指对每一个词建立一个索引,指明该词在文章中出现的次数和位置。当查询时,根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。

    2、Elasticsearch 的基本概念:

    (1)index 索引:索引类似于mysql 中的数据库,Elasticesearch 中的索引是存在数据的地方,包含了一堆有相似结构的文档数据。

    (2)type 类型:类型是用来定义数据结构,可以认为是 mysql 中的一张表,type 是 index 中的一个逻辑数据分类

    (3)document 文档:类似于 MySQL 中的一行,不同之处在于 ES 中的每个文档可以有不同的字段,但是对于通用字段应该具有相同的数据类型,文档是es中的最小数据单元,可以认为一个文档就是一条记录。

    (4)Field 字段:Field是Elasticsearch的最小单位,一个document里面有多个field

    (5)shard 分片:单台机器无法存储大量数据,es可以将一个索引中的数据切分为多个shard,分布在多台服务器上存储。有了shard就可以横向扩展,存储更多数据,让搜索和分析等操作分布到多台服务器上去执行,提升吞吐量和性能。

    (6)replica 副本:任何一个服务器随时可能故障或宕机,此时 shard 可能会丢失,因此可以为每个 shard 创建多个 replica 副本。replica可以在shard故障时提供备用服务,保证数据不丢失,多个replica还可以提升搜索操作的吞吐量和性能。primary shard(建立索引时一次设置,不能修改,默认5个),replica shard(随时修改数量,默认1个),默认每个索引10个 shard,5个primary shard,5个replica shard,最小的高可用配置,是2台服务器。

    3、什么是倒排索引:

    在搜索引擎中,每个文档都有一个对应的文档 ID,文档内容被表示为一系列关键词的集合。例如,某个文档经过分词,提取了 20 个关键词,每个关键词都会记录它在文档中出现的次数和出现位置。那么,倒排索引就是 关键词到文档 ID 的映射,每个关键词都对应着一系列的文件,这些文件中都出现了该关键词。有了倒排索引,搜索引擎可以很方便地响应用户的查询。

    要注意倒排索引的两个重要细节:

    • 倒排索引中的所有词项对应一个或多个文档
    • 倒排索引中的词项 根据字典顺序升序排列

    4、DocValues的作用:

    倒排索引也是有缺陷的,假如我们需要对数据做一些聚合操作,比如排序/分组时,lucene内部会遍历提取所有出现在文档集合的排序字段,然后再次构建一个最终的排好序的文档集合list,这个步骤的过程全部维持在内存中操作,而且如果排序数据量巨大的话,非常容易就造成solr内存溢出和性能缓慢。

    DocValues 就是 es 在构建倒排索引的同时,构建了正排索引,保存了docId到各个字段值的映射,可以看作是以文档为维度,从而实现根据指定字段进行排序和聚合的功能。另外doc Values 保存在操作系统的磁盘中,当docValues大于节点的可用内存,ES可以从操作系统页缓存中加载或弹出,从而避免发生内存溢出的异常,docValues远小于节点的可用内存,操作系统自然将所有Doc Values存于内存中(堆外内存),有助于快速访问。

    5、text 和 keyword类型的区别:

    两个的区别主要分词的区别:keyword 类型是不会分词的,直接根据字符串内容建立倒排索引,keyword类型的字段只能通过精确值搜索到;Text 类型在存入 Elasticsearch 的时候,会先分词,然后根据分词后的内容建立倒排索引

    6、什么是停顿词过滤:

    停顿词可以看成是没有意义的词,比如“的”、“而”,这类词没有必要建立索引

    7、query 和 filter 的区别?

    (1)query:查询操作不仅仅会进行查询,还会计算分值,用于确定相关度;

    (2)filter:查询操作仅判断是否满足查询条件,不会计算任何分值,也不会关心返回的排序问题,同时,filter 查询的结果可以被缓存,提高性能。

    二、ES的写入流程:

    1、es 写数据的过程:

    • (1)客户端选择一个 node 发送请求过去,这个 node 就是 coordinating node (协调节点)
    • (2)coordinating node 对 document 进行路由,将请求转发给对应的 node(有 primary shard)
    • (3)实际的 node 上的 primary shard 处理请求,然后将数据同步到 replica node 
    • (4)coordinating node 等到 primary node 和所有 replica node 都执行成功之后,就返回响应结果给客户端。

    2、写数据的底层原理:

    Elasticsearch索引文档的过程

    (1)数据先写入 memory buffer,然后定时(默认每隔1s)将 memory buffer 中的数据写入一个新的 segment 文件中,并进入 Filesystem cache(同时清空 memory buffer),这个过程就叫做 refresh;

    ES 的近实时性:数据存在 memory buffer 时是搜索不到的,只有数据被 refresh 到  Filesystem cache 之后才能被搜索到,而 refresh 是每秒一次, 所以称 es 是近实时的,可以通过手动调用 es 的 api 触发一次 refresh 操作,让数据马上可以被搜索到;

    (2)由于 memory Buffer 和 Filesystem Cache 都是基于内存,假设服务器宕机,那么数据就会丢失,所以 ES 通过 translog 日志文件来保证数据的可靠性,在数据写入 memory buffer 的同时,将数据写入 translog 日志文件中,在机器宕机重启时,es 会自动读取 translog 日志文件中的数据,恢复到 memory buffer 和 Filesystem cache 中去。

    ES 数据丢失的问题:translog 也是先写入 Filesystem cache,然后默认每隔 5 秒刷一次到磁盘中,所以默认情况下,可能有 5 秒的数据会仅仅停留在 memory buffer 或者 translog 文件的 Filesystem cache中,而不在磁盘上,如果此时机器宕机,会丢失 5 秒钟的数据。也可以将 translog 设置成每次写操作必须是直接 fsync 到磁盘,但是性能会差很多。

    (3)flush 操作:不断重复上面的步骤,translog 会变得越来越大,当 translog 文件默认每30分钟或者 阈值超过 512M 时,就会触发 commit 操作,即 flush操作。

    • ① 将 buffer 中的数据 refresh 到 Filesystem Cache 中去,清空 buffer;
    • ② 创建一个新的 commit point(提交点),同时强行将 Filesystem Cache 中目前所有的数据都 fsync 到磁盘文件中;
    • ③ 删除旧的 translog 日志文件并创建一个新的 translog 日志文件,此时 commit 操作完成

    三、ES的更新和删除流程:

    删除和更新都是写操作,但是由于 Elasticsearch 中的文档是不可变的,因此不能被删除或者改动以展示其变更;所以 ES 利用 .del 文件 标记文档是否被删除,磁盘上的每个段都有一个相应的.del 文件

    (1)如果是删除操作,文档其实并没有真的被删除,而是在 .del 文件中被标记为 deleted 状态。该文档依然能匹配查询,但是会在结果中被过滤掉。

    (2)如果是更新操作,就是将旧的 doc 标识为 deleted 状态,然后创建一个新的 doc。

    memory buffer 每 refresh 一次,就会产生一个 segment 文件 ,所以默认情况下是 1s 生成一个 segment 文件,这样下来 segment 文件会越来越多,此时会定期执行 merge。每次 merge 的时候,会将多个 segment 文件合并成一个,同时这里会将标识为 deleted 的 doc 给物理删除掉,不写入到新的 segment 中,然后将新的 segment 文件写入磁盘,这里会写一个 commit point ,标识所有新的 segment 文件,然后打开 segment 文件供搜索使用,同时删除旧的 segment 文件

    有关segment段合并过程,有兴趣可以阅读这个文章:Elasticsearch搜索引擎:ES的segment段合并原理_张维鹏的博客-CSDN博客

    四、ES的搜索流程:

    搜索被执行成一个两阶段过程,即 Query Then Fetch:

    1、Query阶段:

    客户端发送请求到 coordinate node,协调节点将搜索请求广播到所有的 primary shard 或 replica shard。每个分片在本地执行搜索并构建一个匹配文档的大小为 from + size 的优先队列。 每个分片返回各自优先队列中 所有文档的 ID 和排序值 给协调节点,由协调节点及逆行数据的合并、排序、分页等操作,产出最终结果。

    2、Fetch阶段:

    协调节点根据 doc id 去各个节点上查询实际的 document 数据,由协调节点返回结果给客户端。

    • coordinate node 对 doc id 进行哈希路由,将请求转发到对应的 node,此时会使用 round-robin 随机轮询算法,在 primary shard 以及其所有 replica 中随机选择一个,让读请求负载均衡。
    • 接收请求的 node 返回 document 给 coordinate node 。
    • coordinate node 返回 document 给客户端。

    Query Then Fetch 的搜索类型在文档相关性打分的时候参考的是本分片的数据,这样在文档数量较少的时候可能不够准确,DFS Query Then Fetch 增加了一个预查询的处理,询问 Term 和 Document frequency,这个评分更准确,但是性能会变差。

    五、ES在高并发下如何保证读写一致性?

    (1)对于更新操作:可以通过版本号使用乐观并发控制,以确保新版本不会被旧版本覆盖

    每个文档都有一个_version 版本号,这个版本号在文档被改变时加一。Elasticsearch使用这个 _version 保证所有修改都被正确排序。当一个旧版本出现在新版本之后,它会被简单的忽略。

    利用_version的这一优点确保数据不会因为修改冲突而丢失。比如指定文档的version来做更改。如果那个版本号不是现在的,我们的请求就失败了。

    (2)对于写操作,一致性级别支持 quorum/one/all,默认为 quorum,即只有当大多数分片可用时才允许写操作。但即使大多数可用,也可能存在因为网络等原因导致写入副本失败,这样该副本被认为故障,分片将会在一个不同的节点上重建。

    • one:要求我们这个写操作,只要有一个primary shard是active活跃可用的,就可以执行
    • all:要求我们这个写操作,必须所有的primary shard和replica shard都是活跃的,才可以执行这个写操作
    • quorum:默认的值,要求所有的shard中,必须是大部分的shard都是活跃的,可用的,才可以执行这个写操作

    (3)对于读操作,可以设置 replication 为 sync(默认),这使得操作在主分片和副本分片都完成后才会返回;如果设置replication 为 async 时,也可以通过设置搜索请求参数 _preference 为 primary 来查询主分片,确保文档是最新版本。

    六、ES如何选举Master节点:

    1、Elasticsearch 的分布式原理:

    Elasticsearch 会对存储的数据进行切分,将数据划分到不同的分片上,同时每一个分片会保存多个副本,主要是为了保证分布式环境的高可用。在 Elasticsearch 中,节点是对等的,节点间会选取集群的 Master,由 Master 会负责集群状态信息的改变,并同步给其他节点。

    Elasticsearch 的性能会不会很低:只有建立索引和类型需要经过 Master,数据的写入有一个简单的 Routing 规则,可以路由到集群中的任意节点,所以数据写入压力是分散在整个集群的。

    2、Elasticsearch 如何 选举 Master:

    Elasticsearch 的选主是 ZenDiscovery 模块负责的,主要包含Ping(节点之间通过这个RPC来发现彼此)和 Unicast(单播模块包含一个主机列表以控制哪些节点需要ping通)这两部分;

    • (1)确认候选主节点的最少投票通过数量,elasticsearch.yml 设置的值 discovery.zen.minimum_master_nodes;
    • (2)对所有候选 master 的节点(node.master: true)根据 nodeId 字典排序,每次选举每个节点都把自己所知道节点排一次序,然后选出第一个(第0位)节点,暂且认为它是master节点。
    • (3)如果对某个节点的投票数达到阈值,并且该节点自己也选举自己,那这个节点就是master。否则重新选举一直到满足上述条件。

    补充:master节点的职责主要包括集群、节点和索引的管理,不负责文档级别的管理;data节点可以关闭http功能。

    3、Elasticsearch是如何避免脑裂现象:

    (1)当集群中 master 候选节点数量不小于3个时(node.master: true),可以通过设置最少投票通过数量(discovery.zen.minimum_master_nodes),设置超过所有候选节点一半以上来解决脑裂问题,即设置为 (N/2)+1;

    (2)当集群 master 候选节点 只有两个时,这种情况是不合理的,最好把另外一个node.master改成false。如果我们不改节点设置,还是套上面的(N/2)+1公式,此时discovery.zen.minimum_master_nodes应该设置为2。这就出现一个问题,两个master备选节点,只要有一个挂,就选不出master了

    七、建立索引阶段性能提升方法:

    • (1)使用 SSD 存储介质
    • (2)使用批量请求并调整其大小:每次批量数据 5–15 MB 大是个不错的起始点。
    • (3)如果你在做大批量导入,考虑通过设置 index.number_of_replicas: 0 关闭副本
    • (4)如果你的搜索结果不需要近实时的准确度,考虑把每个索引的 index.refresh_interval 改到30s
    • (5)段和合并:Elasticsearch 默认值是 20 MB/s。但如果用的是 SSD,可以考虑提高到 100–200 MB/s。如果你在做批量导入,完全不在意搜索,你可以彻底关掉合并限流。
    • (6)增加 index.translog.flush_threshold_size 设置,从默认的 512 MB 到更大一些的值,比如 1 GB

    八、ES的深度分页与滚动搜索scroll

    (1)深度分页:

    深度分页其实就是搜索的深浅度,比如第1页,第2页,第10页,第20页,是比较浅的;第10000页,第20000页就是很深了。搜索得太深,就会造成性能问题,会耗费内存和占用cpu。而且es为了性能,他不支持超过一万条数据以上的分页查询。那么如何解决深度分页带来的问题,我们应该避免深度分页操作(限制分页页数),比如最多只能提供100页的展示,从第101页开始就没了,毕竟用户也不会搜的那么深。

    (2)滚动搜索:

    一次性查询1万+数据,往往会造成性能影响,因为数据量太多了。这个时候可以使用滚动搜索,也就是 scroll。 滚动搜索可以先查询出一些数据,然后再紧接着依次往下查询。在第一次查询的时候会有一个滚动id,相当于一个锚标记 ,随后再次滚动搜索会需要上一次搜索滚动id,根据这个进行下一次的搜索请求。每次搜索都是基于一个历史的数据快照,查询数据的期间,如果有数据变更,那么和搜索是没有关系的。


    相关阅读:

    Spring常见面试题总结

    SpringMVC常见面试题总结

    Mybatis常见面试题总结

    MySQL常见面试题总结

    Redis常见面试题总结

    RabbitMQ消息队列常见面试题总结

    ElasticSearch搜索引擎常见面试题总结

    计算机网络常见面试题总结

    操作系统常见面试题总结

    Java基础、集合、多线程常见面试题总结

    Java虚拟机常见面试题总结

    Java常见设计模式总结

    海量数据处理的方法总结

    展开全文
  • 搜索引擎介绍

    千次阅读 2017-02-06 11:41:51
    自从1994年问世以来,搜索引擎逐渐成为了人们获取Internet信息资源的主要方式,相关搜索引擎网站也逐渐成为Web用户使用Internet时的首选访问站点之一,另外搜索引擎和实时通讯、电子邮件等服务已经成为当今各大门户...

    自从1994年问世以来,搜索引擎逐渐成为了人们获取Internet信息资源的主要方式,相关搜索引擎网站也逐渐成为Web用户使用Internet时的首选访问站点之一,另外搜索引擎和实时通讯、电子邮件等服务已经成为当今各大门户网站用来吸引用户访问的三大主要方式。据iResearch艾瑞咨询报告说明,2009年中国搜索引擎市场规模达69.6亿元,年同比增38.5%。搜索引擎市场规模在网络广告市场规模占比也已达33.6%,相比2008年的29.6%上升4.0个百分点[1]。这些都充分说明搜索引擎已经成为Internet上一种重要的网站类型。

    利用搜索引擎获取Internet信息资源也是网络用户常见的访问操作。本章首先主要介绍了搜索引擎在国外和国内的发展历史和现状,通过对此问题的了解,有助于我们认识搜索引擎的特点,如为什么搜索引擎是现在这个样子?为什么该这样使用搜索引擎?这些都是我们需要回答的问题;其次,本章还简单讨论了一下搜索引擎的基本原理,以此来加深读者对搜索引擎的了解,从而更好的帮助读者使用搜索引擎。事实上,有时候我们会觉得搜索引擎不是很好用,个中原因很复杂,但是有一点是肯定的,如果我们越了解搜索引擎,我们就会越能有效的使用搜索引擎。

    1.1 搜索引擎的发展

    搜索引擎这个名称比较古怪,来自于它的英文名称:Search Engine,言下之意,它是一种查询信息的发动机。可以说,整个搜索引擎的发展历史就是Internet网络的发展历史,因为网络用户一直存在着从大量网络信息中获取自己所需信息的需求,而且这种需求随着Internet的快速增加而日渐迫切。

    按照查询技术的发展过程,搜索引擎的发展经历过三个主要阶段:第一阶段时间跨度大致为1990年到1998年,这个时期的搜索引擎主要着力于解决如何快速有效的从大量网页中获取较为完整的搜索结果,开始使用爬虫等信息收集方式和使用Web目录等信息组织方式,代表性的搜索引擎有Altavista等;第二阶段时间跨度大致为1998年到2004年,此时的Internet规模已经相当庞大,查询结果是否完整似乎已经没有太大意义,相反搜索引擎开始努力在查询质量和命中网页结果的相关排序上来提高用户的满意度,基于网页链接分析的算法逐渐被搜索引擎广泛采用,Google就是典型的代表;第三阶段时间跨度为2004年至今,各大搜索引擎不断应用先进的技术来改进功能,如增加多媒体信息查询功能、个性化搜索引擎功能等。

    1.1.1 国外搜索引擎的发展历史

    应该说,如果没有Internet就没有搜索引擎。但是,在Internet出现之前,很多人所提出的思想和见解却深深的影响了现代搜索引擎的出现和发展。比较著名的有两个人物。

    1945年,万尼瓦尔·布什(Vannevar Bush)在《大西洋月刊(The Atlantic Monthly)》上发表了一篇重要的文章《As We May Think》(中文译名为“诚若所思”)。虽然那个时代还没有计算机,但是在这篇文章中,作者提到了类似于超文本的思想,同时还指出未来的世界会出现一种独立于人类大脑以外的知识扩展体(Memory Extension),该物体具有无限大的虚拟空间,可以很好的扩展,同时还能提供有效的信息获取方法,作者称之为“Memex”。该文如图3. 1所示:

    clip_image002

    3. 1 《大西洋月刊》上的《诚若所思》一文(截取于2010-3)

    万尼瓦尔·布什大胆的预测了未来人类可能会面临的信息处理困境,这是他书中的原话“The difficulty seems to be, not so much that we publish unduly in view of the extent and variety of present day interests, but rather that publication has been extended far beyond present ability to make real use of the record”。

    然而,万尼瓦尔·布什并没有在技术上给出实现。20世纪六七十年代美国康奈尔大学(Cornell University)的杰勒德·沙顿(Gerard Salton)教授在信息检索技术方面做出了很多贡献,很多技术直到今天还在搜索引擎中得到广泛的应用,如空间向量模型、词频、倒文档频率和相关度反馈等技术,他甚至还研发了SMART信息检索原型系统。

    1.1.1.1 早期的搜索引擎

    相对于其他类型的信息服务类型,Internet使用WWW服务的时间是比较晚的。所以,早期的Internet并不存在类似于今天的搜索引擎,但是仍然出现了很多相似的工具。

    1)Archie

    1990年,加拿大蒙特利尔的麦吉尔大学(McGill University)的三位学生Alan Emtage、Peter Deutsch、Bill Wheelan发明了Archie,据称这个名称来自于“Archive(档案文件)”的缩写。当时的Internet可以提供诸如FTP等文件信息服务,然而用户却缺乏一种直接查询FTP文件所在地址的工具。而Archie恰恰可以自动索引Internet上匿名的免费FTP文件信息,并提供一种根据文件名称查询文件所在FTP地址的方法。因此,Archie被称为现代搜索引擎的祖先。然而,客观的讲,它并非一个真正的搜索引擎。原因有两个:一是它只能搜索FTP文件资源,并不能获取诸如网页等其他类型的文件资源,因此它其实是世界上第一个FTP搜索引擎;二是它没有机器人(Robot)程序,不能象今天的搜索引擎那样快速有效的抓取Internet上的网页文章内容,相反它使用的是一个基于脚本的文件名称收集器,并通过正则表达式来匹配用户查询与文件名称来实现查询,并通过文件列表的方式提供信息查询结果。

    2)World wide Web Wanderer

    现代搜索引擎之所以可以查询网页信息,是因为它具有一个被称为机器人(Robot)的程序,所谓机器人程序是指可以连续不断的自动获取Internet上所有网页信息的一种程序。World wide Web Wanderer其实并不能算是搜索引擎,它只是世界上第一个机器人程序,由美国麻省理工学院(MIT)的马泰·格雷(Matthew Gray)于1993年6月开发。它通过网络自动遍历方法来统计Internet上的服务器数量,所以可以追踪Internet的发展规模,直至后来还可以专门用于获取Internet上网页的URL信息,所有的信息都被存入数据库,名字叫Wandex。由于对于性能考虑的不是太多,这个机器人程序可以在一天内连续的对同一网页进行多达几百次的遍历,因而会造成被遍历系统性能的严重下降。虽然马泰·格雷很快修复了这一问题,然而这次事故却给人们带来一个疑问:我的站点如果被别的机器人程序遍历的话,是不是会引起性能的下降?直到今天,搜索引擎在机器人设计方面仍然存在着这样的挑战。

    今天依然可以看到MIT网站上有关的网络统计历史数据,网址为:http://www.mit.edu/people/mkgray/net,如图3. 2所示:

    clip_image005 clip_image007

    3. 2 MIT网站上关于World wide Web Wanderer的信息(截取于2010-3)

    3)Veronica和Jughead

    之所以把这两个搜索引擎放在一起,是因为它们的功能很相似,出现的时间也很接近。Veronica是由美国内华达大学(University of Nevada)的系统计算服务小组(System Computing Services Group)于1991年开发。和Archie不同的地方在于,Veronica只对存在于Gopher上的普通文本文件进行查询。随后出现的Jughead也具有类似的作用,据称这个名称来自于“Jonzy's Universal Gopher Hierarchy Excavation and Display(Jonzy的统一Gopher层次性挖掘和显示工具)”。有趣的是,后人常常把Archie称之为搜索引擎之父,而把Veronica称之为搜索引擎之母。

    不过,这些工具都已经不复存在,然而人们依然可以在Internet上看到一些遗留下来的服务,如图3. 3所示:

    clip_image009

    3. 3 某站点展示的几个大学所提供的Veronica服务(截取于2007-9)

    4)ALIWEB

    ALIWEB是个划时代的搜索引擎,借助它人们首次可以对WWW网页进行全文查询。它是由马汀·考斯特(Martijn Koster)于1993年10月开发,名称含义是“类似于Archie的Web索引(Archie-Like Indexing of the Web)”,它相当于Archie的Web版本。但是,ALIWEB没有自己的机器人程序,相反它却要求愿意被ALIWEB收录的网站网管主动提交自己网站的网页索引信息,这样做的好处在于克服了机器人程序带来的带宽消耗,同时网管可以自主的描述网页内容。但缺点也是显而易见的,很多网管并不知道如何来做这个事情,甚至都不知道是否需要这样做,所以ALIWEB的网页数据库规模一直不大。ALIWEB的网址为:http://www.aliweb.com,今天依然还在运行,主页界面如图3. 4所示:

    clip_image011

    3. 4 ALIWEB搜索引擎的主页界面(截取于2010-3)

    马汀·考斯特并没有停止对搜索引擎技术的研究,他后来还成为了机器人拒绝协议(Robots Exclusion)标准的主要设计者。通过机器人拒绝协议,网站可以告知搜索引擎哪些信息是可以被搜索引擎机器人程序所遍历的,而哪些是不可以遍历的。借助这个协议,人们就可以更好的在信息公开性和保密性之间取得一种平衡。这个协议现在已经成为现代搜索引擎的标准功能之一。

    马汀·考斯特的个人主页网址为:http://www.greenhills.co.uk/mak/mak.html,如图3. 5所示:

    clip_image013

    3. 5 马汀•考斯特的个人主页(截取于2010-3)

    1.1.1.2 基于爬虫的搜索引擎

    爬虫(Crawler)是从搜索引擎机器人程序发展而来。虽然两者在功能上很相似,但是爬虫程序却可以通过分析遍历来的网页中含有的网页链接信息,自动获取下一步需要遍历的网页,这个过程可以自动的持续进行下去。爬虫是个非常形象的称呼,也有人称之为蜘蛛(Spider),它们都是一个意思,真像Internet上的一个蜘蛛爬虫,自由的跑来跑去,抓取所能获得的各种网页信息。

    爬虫程序要想能够抓取到所有的Internet网页信息,需要有个假设前提,那就是Internet上的所有网页都相互链接。事实上,这并不可能。不过,探讨这个问题意义不是很大,尤其在Internet上网页数量规模已达万亿级的今天。人们更关心能否快速找到一些最想要的信息资源而非全部的信息资源。

    1994年在搜索引擎发展历史上发生了很多具有里程碑意义的事件,那一年,各种基于爬虫的搜索引擎都纷纷出现,彻底的改变了Internet的信息环境状态。

    1)JumpStation、The World Wide Web Worm和RBSE

    到了1993年底,很多基于爬虫的搜索引擎开始出现,其中比较著名的有三个:一是英国苏格兰大学(Scotland University)开发的JumpStation,它可以自动收集网页的标题等信息,但是随着网页数量的增加,该搜索引擎却不能很好的适应这种变化,性能变得很差,最终停止了运行;二是美国科罗拉多大学(University of Colorado)的奥利弗·麦克布莱(Oliver McBryan)开发的“The World Wide Web Worm”,字面意思是万维网蠕虫,它可以自动收集网页的标题和URL等信息,而且它也是第一个解析超文本信息的搜索引擎;三是美国航空航天局(NASA)开发的RBSE,意思是基于存储库的软件技术设备(The Repository-Based Software Engineering)。它是第一个能够索引Web网页正文的搜索引擎,也是第一个能够在搜索结果排列中引入查询词语相关度概念的搜索引擎。这和前两种搜索引擎不同,它不再简单的只根据找到匹配网页信息的先后次序来排列搜索结果,而是利用网页链接分析重新设计新的结果网页排序算法,因此可以把用户最想要的相关网页放置在搜索引擎结果的最前面。

    现在这些搜索引擎都早已停止了服务,但是后来的搜索引擎基本上都采用了基于爬虫的网页信息获取方法。

    2)Excite

    Excite是一个非常有代表性的搜索引擎,它是由美国斯坦福大学(Stanford Unviersity)6名本科生在1993年2月研发的一个项目Architext发展而来。最初这些学生认为可以通过对网页中的词语关系进行统计分析来提高查询的效果,因此他们在引入风险投资后就研发了Architext系统。到了1993年中期,他们发布了一个供网络管理员可以在自己网站上使用的查询软件版本,称之为“Excite for Web Servers”。到1999年,Excite被一个名叫@Home的宽带运营商以65亿美元收购,因此搜索引擎也改名为Excite@Home。从此,Excite@Home开始侧重于宽带市场,在搜索引擎方面也就没有更新的技术出现。好景不长,Excite@Home于2001年10月破产,2002年5月被InfoSpace公司以1000万美元收购。今天,Excite仍然还在运营,不过它已经改用Dogpile来提供元搜索引擎服务。Excite主页如图3. 6所示:

    clip_image016

    3. 6 Excite搜索引擎的主页界面(截取于2010-3)

    Excite搜索引擎有两点非常引人注目:一是在商业上,它最早提出“免费让人搜索,用广告收入来补贴”的搜索引擎盈利模式,这在当时是比较新的理念;二是在技术上,Excite一直以概念搜索闻名。所谓概念搜索,是指搜索引擎可以理解用户查询词语的语义含义,并进行自动语义扩检[2]来推荐更多的查询内容。当然,受限于技术发展,这种概念检索的功能并非十分强大。图3. 7展示了在Excite中查询“apple”的界面,在窗口的右边显示了一组扩展的查询词语,如“Apple Store(苹果用品商店)”,甚至还有“Banana”等水果类词语。

    clip_image018

    3. 7 Excite所提供的概念检索(截取于2010-3)

    3)WebCrawler

    WebCrawler是美国华盛顿大学(University of Washington)计算机科学系的学生布赖恩·平克顿(Brian Pinkerton)于1994年4月20日创建,虽然它最早只是从一个非正式学术研讨会上的小型项目发展而来,所以最初亮相时只包含来自6000个服务器的网页内容,但它却是世界上第一个可以对遍历网页的全部文字内容进行索引的搜索引擎。在此之前,搜索引擎只能提供网页URL和网页摘要来供用户查看查询结果,其中网页摘要一般来自人工评论或者是由程序自动抽取网页正文的前若干个词语来组成,效果可想而知。所以如此强大的全文索引能力引发了巨大的访问流量,据称当时的华盛顿大学校园网络几乎因此崩溃。

    1995年,美国在线收购了WebCrawler。1997年,Excite又把WebCrawler买走,此时的美国在线就开始使用Excite作为它自己搜索项目NetFind的技术提供商。随着Excite的风光不再,今天的WebCrawler已改用Dogpile来提供元搜索引擎服务。网址为:http://www.webcrawler.com,主页如图3. 8所示:

    clip_image020

    3. 8 WebCrawler搜索引擎的主页界面(截取于2010-3)

    4)Lycos

    Lycos的名字起得非常好,它来自于拉丁文单词“Lycosidae(狼蛛)”,狼蛛和一般蜘蛛最大的区别就是不结网,而是直接追随猎物捕食。这个形象有力的名称确实表达了Lycos遍历网页的强大能力,事实上,它也是搜索引擎历史上的代表作之一。它由美国卡耐基梅隆大学(Carnegie Mellon University)的博士生迈克尔·墨登(Michale Mauldin)于1994年7月在匹兹堡创建,和其他美国搜索引擎不太一样的地方在于,它是早期唯一诞生于美国东部的搜索引擎,而其它的搜索引擎则都在西部的硅谷创建。

    从技术上看,Lycos能够提供网页结果排序、查询词语的前缀匹配、邻近位置词语查询和自动网页摘要等一系列功能。在1994年10月,用户通过当时最为流行的航海者浏览器查询“surf”[3]相关结果时,Lycos是排名第一的搜索引擎结果。当然,它的最大特点仍不是这些。正如Lycos名字暗示的那样,Lycos遍历网页的能力非常强,这才是它的最大特点,而这一点在Internet刚开始发展的年代时无疑非常吸引人。据报道,1994年7月20日,Lycos就可以遍历54000篇网页,到了1994年8月则达到39.4万篇,1995年1月达到150万篇,1996年11月更达到6千万篇网页,超过了当时任何一款搜索引擎所能收集的网页量。

    但是,客观的讲,Lycos的搜索引擎技术并不是最好。不过,Lycos在商业上也做的不错,如很早就开始投资做社区网站,网络广告也经营的不错,这些成功掩饰了Lycos技术的不足。Lycos后来似乎意识到了这一点,它收购了一家广受好评的搜索引擎Hotbot,而Hotbot后台使用的是Inktomi搜索引擎的技术,Lycos希望通过此次收购来提升自己的技术水平。但是,这也使得Lycos一直需要维持着两个搜索引擎的技术平台。可能是Inktomi的技术确实比较先进,直到最后它全面改用Inktomi的搜索技术。不过,由于受到Yahoo!和Google的竞争,Lycos逐渐衰落,最终在1999年4月停止了服务,改由Fast搜索引擎来提供服务。网址为:http://www.lycos.com,主页如图3. 9所示:

    clip_image022

    3. 9 Lycos搜索引擎的主页界面(截取于2010-3)

    5)Infoseek

    Infoseek也诞生在那个奇妙的1994年。Infoseek的起点比较高,因为它所使用的搜索技术来自于美国马萨诸塞大学(University of Massachusetts),而在全美高校中,马萨诸塞大学的信息检索技术可以名数一流。但是设计完成之后,设计师还是发现无法适应如此多的Internet网页处理要求,因此聘请一位名叫威廉·张(William I. Chang)的中国台湾设计师进行了改进,改进后的技术平台被称为Ultraseek。该平台较前者而言,不仅在处理速度上,而且在查询结果的相关度方面,都比较优秀。事实上,后来的Infoseek也确实因为相关度算法好而闻名。同时,它还允许网站管理者提交自己的网页来进行实时索引,该项功能非常吸引人,不过,Infoseek也同时成了搜索造假者[4](Search Spammer)的天堂,很多网站管理者利用此项功能来恶意提升自己网站的搜索结果排名和被搜索的次数。

    不过,这些技术创新并没有真正的带来巨大进步。但是,Infoseek不断增强用户界面的友好性,同时提供大量附加服务以吸引用户使用。最为重要的是,1995年12月,Infoseek连说服带花钱,让网景(Netscape)公司不再使用Yahoo!作为默认的搜索服务提供商,也就是说,当用户点击航海者浏览器的搜索按钮时,默认弹出Infoseek的搜索引擎。但是,随着1999年被迪斯尼(Disney)公司收购,Infoseek最终沦落为Go.com网站做娱乐方面的索引和搜索服务,从此在技术的革新越来越少。在2001年2月,Infoseek终于停止了自己的搜索引擎,改用Overture的搜索服务。有趣的是,百度创始人李彦宏也曾经在Infoseek从事过技术工作,但于1999年回国创立了百度。更为有趣的是,那个当时改进Infoseek 的工程师William I. Chang后来认识了李彦宏,并于2006年12月6日加盟百度,成为百度首席科学家。Infoseek的网址为:http://go.com,主页如图3. 10所示:

    clip_image024

    3. 10 Infoseek搜索引擎的主页界面(截取于2010-3)

    6)AltaVista

    可以毫不夸张的说,凭借大量的创新功能,AltaVista就是早期搜索引擎中的“Google”,它不论是在软件功能上还是硬件条件上都达到了那个时代的顶峰,在很多方面对现代搜索引擎都产生了深刻的影响。

    AltaVista是由美国数字设备公司(Digital Equipment Corporation,DEC)研发,于1995年12月面世。从硬件条件来看,DEC公司本身就是生产计算机设备的公司,凭借DEC强大的Alpha芯片运算能力,AltaVista可以运行在当时最为先进的计算机上,因此运行速度非常快。从软件功能上看,AltaVista搜索引擎的功能也非常多,如AltaVista第一个允许用户使用句子来进行自然语言查询,第一个支持和实现布尔查询,能对不同格式的文档、多媒体信息甚至多国语言的网页进行查询。同时,AltaVista还是第一个允许用户自主增删网页索引信息的搜索引擎,更新的信息最快可以在24小时内上线。另外,AltaVista还能查询有链接指向某个特定网页的所有其他网页,该功能称为链入检查(Inbound Link Check),这个功能有助于网站管理者了解自己站点受人关注的程度,显然,这种被其他网页建立的链接越多,自己网页的受欢迎程度相对也就越高。在界面上,AltaVista还提供了大量的易用帮助提示信息以方便用户使用。

    1997年,AltaVista发布了一个图形演示系统LiveTopics,它采用一个图形化的界面来整理搜索引擎的返回结果,从而方便用户找到所需内容,界面如图3. 11所示:

    clip_image026

    3. 11 LiveTopics系统的界面

    这些技术都令人刮目相看。然而,由于管理混乱和竞争者的不断增多,AltaVista逐渐在进入21世纪以后走了下坡路。2003年2月18日,Overture收购了AltaVista,随后Yahoo!又收购了Overture,AltaVista因此成为了Yahoo!搜索系统的实验平台,也为Yahoo!推出自己的搜索引擎打下了必要的技术基础。AltaVista的网址为:http://www.altavista.com,主页如图3. 12所示:

    clip_image028

    3. 12 AltaVista搜索引擎的主页界面(截取于2010-3)

    7)Inktomi

    Inktomi的正确念法是“Ink-to-me”,它来自于美洲印第安人传说中的一个蜘蛛魔法师,据说给人类带给了文化和知识。Inktomi是由美国加州伯克利分校(University of California Berkeley)计算机教授埃里克·布鲁尔(Eric Brewer)和他的博士生保罗·高瑟(Paul Gauthier)于1996年1月创建。他们是研究并行处理的专家,也希望以Inktomi来证明他们所提出的并行算法是有效的。但是,此时的Internet搜索引擎已经群雄并起,要想和它们正面交锋,难度很大。所以,Inktomi创建者决定只做技术提供商,并在1996年5月20日开始为Hotbot提供服务。事实证明,Hotbot很受欢迎,它声称每天能遍历1千万篇以上的网页,同时还大量运用cookie来储存用户的设置信息以提供个性化的查询服务。在商业运行模式上,Inktomi还提出了很多直到今天依然还在沿用的概念,如“Search Submit(付费提交)”、“Index Connect(付费索引)”、“Web Portal Solution(Web门户解决方案)”和“Enterprise Search(企业搜索)”等。到了1999年,Inktomi 达到了鼎盛,成为了诸如Yahoo!和微软MSN搜索引擎在内近一百多个大网站的搜索后台技术提供商。

    随后,Hotbot被Lycos收购,Yahoo!也转用Google作为搜索技术提供商,这对Inktomi是个巨大打击,不断流失的客户和影响力开始使得Inktomi走向了下坡路。Inktomi于2002年12月23日还是被当年抛弃它的Yahoo!以低价收购。在此之前,Yahoo!一直在使用Altavista作为后台技术提供商。Inktomi网址为:http://www.inktomi.com,主页如图3. 13所示:

    clip_image030

    3. 13 Inktomi搜索引擎的主页界面(截取于2007-9)

    Inktomi的最终失败从一个方面反映了搜索引擎厂商必须要正视的问题,那就是究竟应该直接面对用户树立品牌还是甘当无名幕后英雄。事实证明,要想取得市场的成功,搜索引擎必须及时转型,尽快走到台前。后来的Google和百度则采取了正确的转型路线,成为了现代搜索引擎的巨头之一。

    1.1.1.3 基于分类目录的搜索引擎

    前文所述的搜索引擎多是采用爬虫方式来获取网页信息,同时在查询界面上多是采用输入查询词语的方式来直接获取网页结果,通常我们称这种方式叫全文查询(Full-text Search),因为网页只要在任何位置上含有用户的查询词语就可以被命中。与此相对的,还有另外一种有效的查询界面设计方法,那就是Web目录(Web directory),也称为“分类目录”或者“网页目录”。它采用层次性的目录组织体系,将所收集的网页分门别类的归入不同的子目录中,用户按照目录提示可以逐层定位找到自己所需的内容。采取此类方法实现的搜索引擎和信息查询站点也有很多。

    1)Virtual Library

    发明WWW访问方式的蒂姆·伯纳斯·李(Tim Berners Lee)就于1991年利用WWW方式组织过一个Web目录站点,称为虚拟图书馆(Virtual Library),于是它被看成是世界上最早的Web目录站点。不像一般的商业站点,这个站点是由一群志愿者维护的,志愿者分别根据自己所了解的学科知识领域给出相应目录下的推荐网页结果,所以体系不大,但是收录的网页质量却较高。网址为:http://vlib.org.uk,主页如图3. 14所示:

    clip_image032

    3. 14 蒂姆•伯纳斯•李创立的虚拟图书馆(Virtual Library)(截取于2010-3)

    2)Galaxy

    1994年1月,Galaxy在美国得克萨斯大学(University of Texas)创建,最早的名称是EINet Galaxy。在创建之初,Galaxy主要面向电子商务的大型目录指南服务。1995年4月,Galaxy由一个研究项目转变为一个商业项目,1997年被网络安全公司CyberGuard收购,1998年9月,CyberGuard又把Galaxy买给美国健康网(AHN.com),1999年5月Fox/News公司介入Galaxy。直到2000年5月,几经变故的Galaxy终于成为一个独立的站点,由TradeWave公司负责。

    Galaxy是一个著名的Web目录搜索引擎,这个目录体系首先按照主题分类,各主题目录再依字母顺序排列,大主题下分有小主题,因此是个较为综合全面的Web目录体系。同时,在内容上包含了较多的学术性和专业性知识,内容非常丰富。令人注意的是,Galaxy除了可以提供Web网页查询功能外,还能提供当时还在流行的Telnet和Gopher环境下的信息查询功能。其实在1994年,当时Internet上的Web网络还很小,小到似乎没有必要去建立Web目录,而事实上,Galaxy创建的一个主要原因也就是提供一种Gopher信息的查询功能,而Gopher采用的层次型菜单结构非常需要同时也非常适应Galaxy所提供的目录体系。它的网址为:http://www.galaxy.com,主页如图3. 15所示:

    clip_image034

    3. 15 Galaxy搜索引擎的主页界面(截取于2010-3)

    3)Yahoo!(雅虎)

    Yahoo!和Google、Bing[5]已经成为当代全球三大著名搜索引擎。事实上,它也是这三者当中资格最老的一个。

    90年代初,美国斯坦福大学(Stanford Unviersity)电机研究所攻读电机工程博士学位的美籍华人杨致远(Jerry Yang)和大卫·费罗(David Filo)和其他学生一样,开始喜欢上刚出现的Internet。不过,他们却有一个特殊的爱好,那就是他们经常将自己收集到的一些较好的网页内容链接在自己的个人网页上。渐渐的,他们自己的网页在斯坦福大学内部开始小有名气,人们称呼他们的网页为“杰里和大卫的万维网向导(Jerry&David's Guide to the World Wide Web)”。根据这些已有的经验和前期的基础,杨致远和大卫·费罗于1994年4月使用学校的工作站创建了一个网页目录查询系统,称之为Yahoo!。刚开始,这个网页目录就已经收集了超过1000不同站点的网页信息。较基于爬虫的早期搜索引擎而言, Yahoo!所收集的网页内容能够含有人工编撰的说明信息,可以极大方便用户的使用,而基于爬虫的搜索引擎只能通过采集网页URL和标题之类的简单内容来作为网页内容的提示信息,显然不论是在网页体系的组织上,还是在网页内容的说明上,都难以做到和Yahoo!同样的效果。

    关于Yahoo!这个名称的来历也是众说纷纭,很多人认为它是“另一个层次性的民间先知(Yet Another Hierarchical Officious Oracle)”的缩写词,这可能借鉴于UNIX系统中一个表示网络查询技术的缩略语YACC(Yet another compiler compiler,另一个编译器代码生成器)。但是,根据杨致远等人的说法,Yahoo的“Ya”来自于杨致远的姓,他们曾利用韦氏词典设想过Yauld、Yammer和Yardage等一系列可能的名字。之所以选中Yahoo,是因为在《格利佛游记》中Yahoo是一种粗俗和不懂世故的人形动物,它具有人的种种恶习,他们反其义而用之,认为在强调平等权利的互联网上大家都是乡巴佬,为了增加褒义色彩,又后面加上一个感叹号,于是就有了Yahoo!。

    事实上,Yahoo!的成功离不开它的幸运。当时有一家著名Web浏览器公司网景(Netscape)生产一种称为航海者(Navigator)的Web浏览器软件,该软件非常流行,人们都在使用它去访问Web网络。为了增强网络信息查询的快捷性,该浏览器的创始人马克·安德森(Marc Andreessen)看中了Yahoo!,并且在1995年1月,他把航海者浏览器上一个最为重要的网络查询按钮默认指向了Yahoo!目录。可以说,借助航海者浏览器的平台,Yahoo!很快在Internet上树立了名声。1995年4月,Yahoo!还吸收到了曾经给Apple、Oracle和Cisco投资过的Sequoia公司接近200万美元的投资。此时,Yahoo!已经成为Internet上的一个重要的门户站点。

    然而,通过人工组织方式获取的Web目录结构不可能适应网络快速增长的发展要求,因此,Yahoo!先后使用了诸如Altavista和Inktomi等搜索引擎来为自己提供基于关键词的全文检索服务。2002年10月9日,Yahoo开始不再使用Web目录作为主要搜索工具,而是使用另外一家后起之秀Google来为自己提供关键词查询服务,并成为真正的全文搜索引擎。正如当年Yahoo!借助航海者成功一样,Google最终也借助Yahoo!成名,并敢于和Yahoo!抗衡。此时的Yahoo!只能通过收购的方式来获得较快的发展,2002年12月23日收购inktomi搜索引擎,2003年7月14日收购包括Fast和Altavista在内的Overture公司。直到2004年,雅虎中国在中国内地终于推出了自己独立研发的搜索引擎“一搜”。2004,雅虎中国推出独立的搜索门户网站一搜网,“一搜天下小”的广告语让人侧目。今天已经改名为雅虎全能搜,网址为:http://www.yahoo.cn,主页如图3. 16所示:

    clip_image037

    3. 16 雅虎全能搜的主页界面(截取于2010-3)

    不过,Yahoo!的Web目录仍然还是一个重要的网络信息查询工具,它的设计结构经过不断的调整,已经非常成熟和易于使用。Yahoo!的Web目录网址为:http://dir.yahoo.com,网页如图3. 17所示:

    clip_image039

    3. 17 Yahoo!的Web目录主页界面(截取于2010-3)

    当然,这个Web目录也渐渐的融入了更多的特点。尤其是随着名声的增大,Yahoo!早已开始对收录的商业站点收费,2007年的收录报价是每年299美元。但是,对于那些真正著名的站点而言,Yahoo!还是采用免费收录的方法。

    4)ODP(开放目录)

    ODP是Open Directory Project(开放目录项目)的简称,是由瑞奇·斯克伦塔(Rich Skrenta)于1998年和合伙人一起创办的。这个目录体系结构不仅可以提供一种Web网页目录的查询方法,而且这个目录体系的内容还是由全球各地的志愿者集体编撰而成,至今已经成为全球最大的Web目录,因此那些本来需要等待被Yahoo!目录收录的网站现在终于找到了新的地方。更为重要的是,人们还可以免费的下载整个目录体系,以供自己的科学研究。1998年11月,网景(Netscape)公司收购了ODP。随着网景公司自己在同年同月被美国在线(AOL)以45亿美元收购,ODP后来归入了AOL的名下。ODP的网址为:http://www.dmoz.org,主页如图3. 18所示:

    clip_image041

    3. 18 ODP的Web目录主页界面(截取于2010-3)

    5)专业的Web目录站点

    如果读者细心,你就会发现上述这些Web网页目录的结构有时科学性并不强,如图3. 19显示了部分雅虎中文分类目录的内容:

    clip_image043

    3. 19 部分雅虎中文Web目录的截图(截取于2010-3)

    显然,“音乐”属于“艺术”,无论如何将两者并列作为同一个目录下的子内容项并不合适,更不必说“军事”是否应该放入“休闲娱乐”目录下了。

    但是我们要注意,这些Web目录并不在意科学性,相反,它们更加在意易用性。一般的Web用户可能并不十分了解目录的层次结构,他们往往希望能够在最短的时间内找到自己所要的目录项,所以雅虎中文所设计的这些目录往往是集中了最为流行常见的目录项,并且以一种极为方便和直观的方式来展示目录结构。

    然而,对于那些诸如图书馆员等从事专门信息资源管理的专家而言,他们可能并不满意这样的结构,为此还有一些更为专业的搜索引擎Web目录。

    克伦·施耐德(Karen G. Schneider)创办的“图书馆员Internet索引(Librarians' Internet Index,LII)”就是一个专门面向图书馆员的专业Web目录站点,该目录的结构具有较为完善的组织,科学性强,质量较高。一般而言,那些具有收费收录(Paid Inclusion)服务的Web目录,通常都不具备这些特点。LII的网址为:http://lii.org,主页如图3. 20所示:

    clip_image045

    3. 20 LII的Web目录主页界面(截取于2009-4)

    后来,LII与另外一家著名的专业Web目录“Internet公共图书馆(Internet Public Library)”合并组建了ipl2,网址为:http://www.ipl.org。

    再如Google搜索引擎也经常充分利用图书馆员的反馈信息。它提供了“Google图书馆员报道(Google librarian newsletter)”的消息服务,经常收集世界各地图书馆员的意见和问题,以此来改进Google的搜索功能,并且定期向他们提供Google服务的相关原理和改进说明,相关内容的介绍网址为:http://www.google.com/librariancenter/newsletter/0512.html,如图3. 21所示:

    clip_image047

    3. 21 Google图书馆员报道的官方介绍(截取于2010-3)

    6)主题Web目录

    上述这些综合Web目录还有很多。不过我们也要能够看到它们存在的问题,原因很简单,如果目录小,价值不大,难以吸引用户使用,如果目录大,相关的人工整理成本太高,维护困难。所以,和综合Web目录不同,主题Web目录采取了不同的设计策略,它只面向诸如商业和经济等特定领域,从而取得了目录规模和运转成本之间的一个平衡。通常人们把这些主题Web目录也称为垂直Web目录(Vertical Web Directory)、面向局部的Web目录(Locally Oriented Directory)。

    如Business.com就是一个专门面向商业领域的主题Web目录,它的商业目录结构比较有特色,涵盖了商业和经济领域的相关重要内容。网址为:http://www.business.com,主页如图3. 22所示:

    clip_image049

    3. 22 Business.com的Web目录主页界面(截取于2010-3)

    1995年成立的Looksmart也是一家Web目录站点,早期曾经通过增加网页收录数量和规模来和Yahoo!目录竞争。显然,这一招并不十分成功,2002年Looksmart 发明的一种新型的盈利模式为它的快速增长提供了基础。在此之前,几乎所有的Web目录站点都是采取较为固定的付费收录策略,如每月只需付多少钱可以收录到哪个目录中等等。然而,Looksmart采取了按点击付费(Pay Per Click)的收费方法[6],也就是说,用户点击该收录网页次数越多,相应的收录费用也就越高,这对被收录网页而言,显然是一种很好的激励措施,愿意为较高的点击率而支付更多的费用。

    在内容上,Looksmart不仅在自己的目录结构中收录网页索引,而且还根据主题分门别类的收录不少很有价值的内容资源,应该是个很不错的主题Web目录。然而,这些收录的内容相关性却因为各种原因而逐渐变差,后来在很大程度上又损害了Looksmart的声誉。

    然而在商业上发生了一连串的失败,给Looksmart带来了越来越多的不利影响。1998年,Looksmart以2000千万美元收购一家非盈利的Web目录站点Zeal来扩展自己的目录规模,但是到了2006年3月28日,Looksmart却关闭了这个Zeal目录。2002年3月,Looksmart还试图通过收购WiseNut搜索引擎来获得发展,结果也不理想。不过,最大的问题还不止这些。Looksmart曾经通过加盟诸如MSN等门户站点,通过付费收录方式来获利。然而,Looksmart一直以来建立的良好信誉却随着这个合作而逐渐变差,而且Looksmart在商业上也逐渐越来越依赖于微软的MSN搜索引擎。到了2003年,微软宣布抛弃与Looksmart的合作,对Looksmart来说,这无疑是个致命的打击。后来,Looksmart开始改用一个称为Furl的社会化书签(Social Bookmarking)管理站点来期望获得新的访问流量增长,现在它主要为广告商提供按点击付费的搜索网络平台服务。它的网址为:http://www.looksmart.com,主页如图3. 23所示:

    clip_image051

    3. 23 Looksmart的主页界面(截取于2010-3)

    综上所述,Web目录确实具有不少优点,所以在搜索引擎领域中一直都是一个不可或缺的角色。连Google都利用ODP目录推出了自己的Web目录站点,网址为:http://dir.google.com,主页如图3. 24所示:

    clip_image053

    3. 24 Google的Web网页目录主页界面(截取于2010-3)

    然而,我们必须要看到这种方式并非现代搜索引擎的主流。由于Web网页目录需要大量的人工编撰工作,所以维护成本很高,缩放性很差。而且网页目录规模通常都不大,相对于关键词查询而言,我们可以认为虽然关键词查询可能查准率不高,但具有更高的查全率,而网页目录查询则具有更高的查准率,查全率则较低。

    而且这种目录结构还存在一个不太引人注意的缺点,那就是它要求用户首先了解网页目录结构,否则用户将很难使用。举个例子,用户想查询“蓝牙”的相关网页,如果他根本不知道这是一种无线通讯技术的话,那他就根本找不到目录的入口,即便用户知道这是无线技术,恐怕也很难在较短的时间快速定位到所要的子目录,究竟“无线通讯技术”在“数据通讯”目录下呢还是在“硬件”目录下呢?而且,更为麻烦的是,如果用户认为它应该在“数据通讯”目录下,而目录编撰者却把“蓝牙”归入“硬件”目录中,也就是说,良好的目录使用效果需要用户和编撰者对目录结构具有一致的思路和理解,事实上这很难办到,因此就会导致用户难以理解,甚至用户会认为在这个目录中根本找不到自己所需的内容。所以,现在比较流行的Web目录往往采取主题化策略,如只针对新型站点资源进行收集和整理,另外博客目录(Blog Directory)、社会化书签目录等等也往往具有不错的应用效果。

    1.1.1.4 当代著名搜索引擎

    从2000年左右起,一批新型搜索引擎企业逐渐出现,其中很大一部分搜索引擎至今还在提供服务,并且成为了主导当代Internet搜索引擎市场的重要力量。它们不论是在技术实力上,还是在商业运营模式上,都比它们的前辈们取得了更多的成功和突破。从技术上看,虽然基于爬虫或者Web目录的传统搜索引擎技术仍然还在发挥作用,但是各大新型搜索引擎所使用的核心技术已经完全跳出了传统的框架,纷纷提出自己的新技术和新方法,以期在功能和效果赶超过去的元老。从商业运营模式上看,搜索引擎已经成为现代门户网站中最为常见的免费服务之一,而且也是各大网站吸引用户访问的主要功能靓点。搜索引擎也从诸如竞价排名等传统服务开始转型,推出一些新型的盈利模式,如Google所推出的AdSense 可以提供与网站的内容相匹配的广告,而网站可以在访问者点击这些广告时获得收益,而Google的AdWords则规定仅当有用户点击网站在Google联网中的广告时,网站才需支付相应费用。这些形式具有极大的创意,也改变了人们对搜索引擎的使用习惯和认识。

    1)Google

    Google已经成为现代Internet上最大的搜索引擎之一,而且在业务上已经开始超越搜索引擎本身,开始向移动开发、应用软件和操作系统等方向前进,成为可以和微软等大公司抗衡的重要力量。不过,这个搜索引擎在1998年10月之前,仅仅只是个美国斯坦福大学(Stanford Unviersity)的一个小型学生项目。1995年,斯坦福大学计算机系博士生拉里·佩奇(Larry Page)和塞吉·布林(Sergey Brin)开始尝试设计一个名称为BackRub的项目。严格说来,BackRub只是一个可以统计分析网页词语信息的爬虫程序。不过,佩奇和布林都认为这个项目可以做下去,他们于1997年9月15日注册了google.com的域名。Google这个名称据说来自于“googol”[7]单词,意思是10的100次方,这个巨大的数象征着Google能够处理海量的Internet网页信息。1999年2月,Google完成了从Alpha版到Beta版的升级[8]。通常,Google公司把1998年9月27日认作是自己的生日,每年这个时候,Google搜索引擎的主页Logo都会变成一个祝贺生日的模样。

    Google和前期的搜索引擎相比,采取了一系列新技术,如用于网页排序的Pagerank算法等,其实正是这个基于网页链接分析的算法才使得Google具有了和以前搜索引擎完全不一样的使用效果。另外,通过十几年的发展,它还是开发了一大批让人耳目一新的服务,如近几年所广泛使用的地图搜索和移动搜索等。不过,正如所有成功的搜索引擎一样,Google的成功也离不开商业上的努力。在2000年之前,Google的发展和推广一直都不是很快。直到2000年开始为Yahoo!提供后台搜索技术支持之后,Google才凭借Yahoo!快速发展起来,正如当年网景提携了Yahoo!一样。在2002年到2003年间,Google连续两年被评为互联网世界第一品牌。从这以后,Google的发展就进入了快速增长期。

    不过,中国一直是Google未能始终取得辉煌的市场。事实上,Google直到2004年才进入中国内地。一个明显的事实就是直到2005年4月29日Google才花费巨资赎回了google.com.cn和google.cn的域名。这桩交易也是国内有史以来跨国公司第一次以高价赎回与其品牌密切相关的域名,据估计,为了这19个字母,Google支付的费用应在百万元之上,平均每个字母价值超过5万元[9]。在此之前,google.com.cn域名的拥有者却是一个“创可贴”论坛,如图3. 25所示:

    clip_image055

    3. 25 google.com.cn域名的前拥有者“创可贴”主页界面(截取于2004-9)[10]

    这种情况并非少见。直到2010年4月,还有人收藏着百度的美国域名站点,http://www.baidu.us,期待着类似于Google故事的财富奇迹。这事实上也是一种一直以来始终存在的Internet域名收藏服务,

    2006年4月Google首席执行官埃里克·施密特来到中国,将Google中文命名为“谷歌”,并开设了一个号称最短的域名“www.g.cn”。而遗憾的是到了2010年3月Google终于宣布退出中国内地市场,但是Google搜索引擎的强大搜索能力确实为中国的其他搜索引擎提供了一个良好的学习范本。Google的网址为:http://www.google.com,主页如图3. 26所示:

    clip_image058

    3. 26 Google搜索引擎的主页界面(截取于2010-4)

    2)微软搜索引擎

    读者可以会很奇怪为什么这个标题没有具体的搜索引擎名称?事实上,微软一直都有自己的搜索引擎,而且还不止一个搜索引擎,不过这些搜索引擎一直在换。这充分反映了一个问题,那就是微软想在搜索引擎领域中有所作为,然而始终没有找到合适的突破口。不过,即便如此,也毫不妨碍微软搜索引擎一直成为世界排名前三的著名搜索引擎之一。

    微软较早的一款著名搜索引擎是于2004年7月推出的MSN Search,可能在中国各大搜索引擎纷纷推出新版本时,微软太过于仓促,使得这款搜索引擎在刚推出时甚至都没有简体中文版本,而只有繁体中文版本,网址为:http://search.msn.com,主页如图3. 27所示:

    clip_image060

    3. 27 MSN Search搜索引擎的主页界面(截取于2004-9)

    到了2006年9月,微软改用了Windows Live Search搜索引擎,网址为:http://www.live.com,主页如图3. 28所示:

    clip_image062

    3. 28 Windows Live Search搜索引擎的主页界面(截取于2009-3)

    不论是哪一款,当时的市场反应始终平平。为此微软先后又推出若干个昙花一现的搜索引擎版本,如“杜威女士(Ms. Dewey)”就是一款号称交互式搜索引擎的奇妙作品,它基于Windows Live Search搜索引擎的技术基础,但是在界面上使用Flash动画创造了一个虚拟女性助手,背景是一个现代城市街景。这个助手制作代价不菲,据说花了3天时间聘请明星雅尼娜·加万卡(Janina Gavankar)真人录像得到600多个视频片段,并随机使用以使得动画人物可以产生丰富多变的姿势和表情,她甚至可以在用户没有任何输入的闲暇时刻中拿出道具来玩耍。最为重要的是,她可以使用交互式的声音提醒并告知用户查询的内容和结果[11]。网址为:http://msdewey.com,主页如图3. 29所示:

    clip_image064

    3. 29 Ms. Dewey搜索引擎的主页界面(截取于2009-3)

    后来,微软还采用诸如通过查询关键词来猜字谜并赢取奖励的方法来吸引用户使用,最为夸张的是,在2008年11月,用户还可以通过微软搜索引擎购买惠普电脑并获得40%的现金返还。然而,这些方法似乎都没有效果。到了2007年3月,微软在Internet搜索引擎市场的占有率已经跌至两年前的水平。不得已,微软使出了最后的看家本领,在2008年1月准备以45亿美元收购Yahoo!,希望两家合并一起和Google竞争,此时的Google已经占据了全球8成多的搜索引擎市场份额。不过,收购最终以失败告终。

    造成这种局面的原因有时很复杂,甚至都不一定是技术问题。如微软在线用户商业集团高级副总裁尤瑟夫·迈瑟迪(Yusuf Mehdi)曾经表示,微软搜索服务不受欢迎的部分原因在于品牌不如Google。他进一步举例到,微软曾做过用户测试,在不知道用户搜索引擎使用偏好的情况下,把微软搜索引擎的查询结果加上Google的Logo呈现在用户面前,参测用户无一例外地认为,这是最好的查询结果。事实上,现代搜索引擎技术已有较大的发展,用户并不容易区别这些不同搜索引擎技术的不同之处。

    2009年初,微软开始了一个名叫Kumo的搜索引擎实验项目,并准备以此来替代Live Search。Kumo在日语中为“云”和“蜘蛛”的意思。主页如图3. 30所示:

    clip_image067

    3. 30 Kumo实验搜索引擎的主页界面(截取于2009-6)

    这个名称是不是隐含着在云计算年代中的搜索含义我们不得而知,但是我们知道,Kumo压根就没有正式发布。也许Kumo只是过渡产品,最终微软于2009年5月发布了一个成熟的搜索引擎产品Bing,这个象铃声的单词据说来自于一名德国百岁老人的姓氏,中文名称为“必应”,应该为有求必应之义。网址为:http://cn.bing.com,主页如图3. 31所示:

    clip_image069

    3. 31 Bing搜索引擎的主页界面(截取于2009-6)

    3)Ask

    其实,较Google和Bing而言,Ask搜索引擎并不算是非常著名,但是它的制作创意非常出色。它号称为“自然语言搜索引擎(Natural Language Search Engine)”。也就是说,它允许用户使用类似于口语中常见的问话句子来进行查询,因此易用性很强。

    创建于1997年4月的Ask搜索引擎当时的名称是Ask Jeeves,意思是有问题可以询问男仆,名称很形象,问男仆难道不使用正常的句子吗?因此早期的主页上常常有个面带微笑的英国男仆。不过,要想提供这种自然语句的查询,技术难度很大,因此早期Ask搜索引擎使用人工编撰的方法来提供一些常见句子的匹配结果。后来Ask使用DirectHit搜索引擎来提供信息查询服务,此时的网页查询结果采用流行度作为主要排序指标。2001年,Ask改用Teoma来提供查询服务,Teoma最大的特点在于采用网页结果聚类方法来组织主题,以方便用户快速得到所需内容。2006年,Ask正式从Ask Jeeves更名过来。网址为:http://www.ask.com,主页如图3. 32所示:

    clip_image071 clip_image073

    3. 32 Ask搜索引擎的主页界面(前者截取于2007-9,后者截取于2010-4)[12]

    1.1.2 中国搜索引擎的发展历史

    之所以说中国搜索引擎而不说中文搜索引擎,是因为国外的著名搜索引擎大都在中国设有公司并且营运相应的中文版本搜索引擎,如Google在2000年9月就推出了中文版本,2005年5月在上海开设了办事处。我们所指的中国搜索引擎专指中国本地企业创办的搜索引擎。事实上,中国本地搜索引擎的发展历史要比国外晚的多,直到2000以后,中国内地的搜索引擎市场才开始获得快速发展。但是,作为全球网民最多的国家之一,中国一直都是各大搜索引擎厂商关注的重点。但是,由于中文处理的特殊性,国内搜索引擎虽然起步晚,却具有中文处理的先天优势和对中国市场更为了解的特殊能力,因此中国本地搜索引擎的发展相当快,甚至超越了在中国营运的国外搜索引擎巨头。

    1)百度

    百度已经成为全球最大的中文搜索引擎之一。这个诗意的名称来自于宋词名句“众里寻他千百度”,巧妙表达了搜寻信息的涵义,不过也有人认为它很有禅意。1991年毕业于北京大学信息管理系的李彦宏在获得美国纽约州立大学布法罗分校(University at Buffalo, the State University of New York)计算机科学硕士学位后,并在Infoseek工作期间创建了ESP[13]技术将它成功应用。1996年,他还首先解决了如何将基于网页质量的排序方法与基于相关性的排序方法进行结合的问题,并因此获得了美国专利。1999年底,李彦宏携风险投资回国和其好友徐勇于2000年1月在北京中关村创立了百度(Baidu)公司。刚起步的时候,百度主要为诸如搜狐和新浪等门户网站提供搜索技术服务,2001年8月开始正式提供自己的搜索引擎服务。2005年8月5日,百度赴美上市成功。另外,百度还于2004年8月收购以分类目录为主要特色的国内著名站点“hao123”,在Web目录方面开始提供自己的服务。更为重要的是,百度还在竞价排名服务等搜索引擎商业模式创新上取得了一定的成果。除此以外,今天的百度已经在电子商务和社区搜索等领域开始了更多的尝试。百度的网址为:http://www.baidu.com,主页如图3. 33所示:

    clip_image075

    3. 33 百度搜索引擎的主页界面(截取于2010-4)[14]

    所谓社区搜索(Community Search),是指利用某种社会交流平台软件,将人们存储在脑海中的知识发掘出来,以解决其他用户所要查询的问题,也被称为“协同搜索(Collaborative Search)”。诸如百度的“贴吧(http://tieba.baidu.com)”、“知道(http://zhidao.baidu.com)”和“百度Hi(http://im.baidu.com)”实时通讯工具,都能够提供这种社区搜索服务,对于在一个社区里面提出的一个问题,由人工参与解答而非搜索引擎通过机器自动算法获得结果。也有人称之为问答式搜索或者在线百科全书等。

    2)北大天网

    很多人都不太了解北大天网,事实上,它也不是商业公司运作的,而是由北京大学计算机系网络与分布式系统研究室于1997年10月29日推出的搜索引擎。从实际运行效果来看,该款搜索引擎为中国本地搜索引擎提供了大量技术人才,而且相关研究室也因此承担了大量的搜索引擎相关学术研究工作,取得了不少成绩,如北大天网中搜索引擎与互联网信息挖掘组的李晓明、闫宏飞和王继民所著的《搜索引擎—原理、技术与系统》就是一本很好的搜索引擎原理入门教程[15]。北大天网的网址为:http://e.pku.edu.cn,主页如图3. 34所示:

    clip_image077

    3. 34 北大天网搜索引擎的主页界面(截取于2007-9)

    除了具有一般的网页查询功能外,它还具有强大的FTP文件查询能力,点击图3. 34中的“文件”链接即可查询FTP文件资源。另外,北大天网还拥有一个巨大的“中国Web信息博物馆”,它主要收集和展示历史上的中国网页信息内容,目前存储的网页数量已达数十亿以上。网址为:http://www.infomall.cn,主页如图3. 35所示:

    clip_image079

    3. 35 北大天网“中国Web信息博物馆”的主页界面(截取于2010-4)

    国外也有类似于北大天网“中国Web信息博物馆”的站点,如“Internet档案(Internet Archive)”,网址为:http://www.archive.org,如在其中查询某站点的历史网页内容记录,如图3. 36所示:

    clip_image081

    3. 36 在Internet Archive站点中查询某站点的历史网页内容页面(截取于2009-4)

    3)其他搜索引擎

    中国本土的搜索引擎还有很多,下面对其他搜索引擎简单做一说明。

    搜狗是搜狐(Sohu)公司的子公司,1996年8月成立的搜狐公司也是最早提供网络信息分类导航服务的网站,1998年2月,搜狐推出了分类目录搜索引擎,是当年Yahoo!搜索引擎对应的中国版本。而搜狗则是搜狐于2004年8月3日专门推出的一款搜索引擎。据称名称来自于2001年电影《大腕》里的幽默台词“他们搜狐,我们搜狗,各搜各的!”。早期的搜狐也做搜索,但是自从推出搜狐以后,搜狐就加快了搜索引擎开发的进度。另外,搜狗在拼音输入等桌面应用程序领域也一直表现不错。网址为:http://www.sogou.com,主页如图3. 37所示:

    clip_image083

    3. 37 搜狗搜索引擎的主页界面(截取于2010-4)

    搜狗为什么要做拼音呢?这与搜索引擎有没有关系呢?正如搜狐副总裁王小川所言,搜索为拼音服务,拼音为搜索服务。一方面从商业层次上看,拼音输入法是一种使用面很广的输入法,利用这种免费的输入法可以极大的宣传搜狗,增加用户对搜狗搜索引擎的了解,扩大搜索引擎的知名度;另一方面从技术层次上看,现代搜索引擎越来越重视对用户行为的理解,认为只有最为了解用户需求的搜索引擎才能取得成功。利用人们在使用输入法中的词语组合等输入信息可以有效的提供“线下(相对于网络在线访问而言,就是不在线的桌面应用环境)”用户的需求信息,以此来改进搜索引擎,反之也可以利用搜索引擎用户的线上查询需求来增强拼音输入法的有效性,如可以把当前的热门查询词语组合排在输入结果的前面等。

    于1997年成立的网易是国内第一家提供中文全文查询服务的门户站点,之后经过几次升级并先后和Google和百度在搜索技术有过合作。同时它在创立时就推出了全中文搜索引擎目录服务,虽然这不是主要服务内容。网易还曾经拥有和维护着当时唯一的开放式目录体系中文版本(类似于著名的ODP),这个项目于2006年被关闭了。不过,就在2006年底,网易推出了自主研发的中文搜索引擎有道测试版,并于2007年12月推出正式版本。网址为:http://www.youdao.com,主页如图3. 38所示:

    clip_image086

    3. 38 有道搜索引擎的主页界面(截取于2010-4)

    虽然以门户服务为主的新浪并非一个专业的搜索引擎,但是新浪于1999年2月2日就已经推出了中文搜索引擎“新浪搜索”测试版,1999年10月9日,新浪还推出了高级搜索,所收集的网页内容规模和分类目录的规范程度都比较不错。2000年11月1日,新浪又正式推出国内第一家综合搜索引擎,即可以同时对多种不同类型的信息内容进行同步查询,在用户的一次查询过程中,就可以在结果网页上获得包含目录、网站、新闻标题、游戏等在内的各类综合查询结果。2005年6月30日,新浪终于推出了专门的搜索引擎——新浪爱问搜索,网址为:http://www.iask.com,主页如图3. 39所示:

    clip_image088

    3. 39 爱问搜索引擎的主页界面(截取于2010-4)

    中搜是由“慧聪搜索”发展而来,它是由中国网、慧聪国际等公司共同创办的中国搜索联盟,于2002年9月正式改名为“中国搜索”,并于2003年8月推出搜索门户,后来改称“中搜”,网址为:http://www.zhongsou.com,主页如图3. 40所示:

    clip_image090

    3. 40 中搜搜索引擎的主页界面(截取于2010-4)

    甚至一些其他门户站点,如实时通讯软件提供商腾讯也推出了自己的搜索引擎“搜搜”,网址为:http://www.soso.com,主页如图3. 41所示:

    clip_image092

    3. 41 腾讯“搜搜”搜索引擎的主页界面(截取于2010-7)

    除此以外,象中国台湾和香港地区都有自己本地的搜索引擎。如由台湾中正大学吴升教授所领导GAIS实验室开发的Openfind搜索引擎成立于1998年1月,是台湾最早开发的中文智能搜索引擎,采用GAIS实验室推出多元排序(PolyRank)核心技术,今天的业务主要从事搜索产品相关服务,网址为:http://www.openfind.com。再如中国香港搜索引擎Timway,网址为:http://www.timway.com。

    1.2 搜索引擎的原理与工作机制

    正如序言所说,本书并非技术原理类教程,因此并不打算对此话题做过多的讲述。但是,通过以往的使用经验表明,如果用户对搜索引擎的基本工作机制有一些基本的了解,那么用户可以更好的理解现代搜索引擎能够做什么以及不能够做什么,同时,在使用当中如果出现了问题,我们也可以更加容易知道个中原因,并有针对性的进行改进,从而提高信息查询的效果。因此,本节对此问题略作说明。

    1.2.1 搜索引擎工作机制

    从结构上看,搜索引擎主要可以分为三个模块,分别是网页遍历模块、索引模块和检索模块。下面我们结合搜索引擎的一个典型的工作流程,来谈谈它究竟是如何运行的。

    假设用户打开Google搜索引擎,键入“南京财经大学”六个字,在耗费大概0.15秒以后,用户看到了最终的结果网页,其中南京财经大学的主页链接被排在第一位,其他几个相关站点分别罗列于下方,如图3. 42所示:

    clip_image094

    3. 42 利用Google搜索引擎获取“南京财经大学”的查询结果页面(截取于2010-4)

    这个短短的0.15秒究竟发生了什么呢?我们凭借直觉,感觉应该是这样的。搜索引擎获取到用户输入的查询词语(即所谓的关键词),到Internet上去查看每一篇网页内容,并判断网页是否与所查询的词语相关,然后把找到的网页URL及其相关信息显示给用户即可。

    这种看起来非常简单的做法其实根本行不通。原因有很多,就说一个最为简单的问题,那就是搜索引擎如何快速的在如此多的网页中找到用户所需的网页?前文已经说明,Google搜索引擎在2008年就已能获取到万亿级的网页数量,而且据学者Bar-Yossef和Gurevich在2006年采用随机采样方法的研究表明,当时的Google搜索引擎大概只能获取到实际Internet上64%的网页[16]。可以毫不夸张的说,Internet真是一个海量的网页世界。事实上,搜索引擎能够获取的网页URL只会更多。因此,在如此多的网页中,实时的在每篇网页中逐字逐句的查找关键词,显然绝不可能在0.15秒完成。

    读者可能并不清楚为什么网页数量和网页URL数量并不一致。一般来说,一个网页应该具有一个URL,一个URL对应一个网页。对于传统的静态网页而言,这是正确的。但是对于现在更为常见的动态网页而言,一个网页完全可以对应多个不同的URL,如下面两个URL:

    http://www.njmars.NET/list.asp?boardid=4

    http://www.njmars.Net/list.asp?boardid=12

    它们都是访问http://www.njmars.net/list.asp网页,但是后面跟着的参数并不一样,所以读者会发现它们分别打开不同的论坛栏目。

    为此,搜索引擎需要事先做点准备工作,就像从一个整理过的图书架可以更快的找到所需要的图书一样。不过,搜索引擎的准备工作比较复杂,可能得花费它几天到几周的准备时间。在这期间,它需要完成两件重要的工作。

    一是先利用爬虫从Internet上获取尽可能多的网页,将其保存在搜索引擎自己的数据库中。这里有两个需要解释的地方:一是之所以说是尽可能的多,是搜索引擎自己的技术局限性和网页不断增加的现状,导致不可能获取全部的网页信息,通常爬虫一秒钟也只能获取到不到100个网页信息;二是之所以这样做的原因是在获取这些网页后,再以它们作为用户查询的依据,就不要在用户查询时再去实时查询Internet上的网页内容。具体来看,爬虫程序可以从一个或者几个起始网页开始,下载这些网页,并将网页内容和URL等信息一起保存在搜索引擎自己的数据库中。然后,爬虫程序可以从这些网页中进一步得到其他网页的链接,再次获取这些超链所对应的其他网页,这个过程将不断的进行下去。通常这种过程我们称之为“网页遍历”。由于不可能收集完所有的网页,所以搜索引擎通常会在一段时间后或者在满足一定条件时完成这种遍历活动。

    因此,这时我们可以回答一个问题:为什么有时候搜索引擎找不到某些已经存在的网页?除去用户方法错误等主观原因外,常见的一个原因就是搜索引擎可能没有对这个网页进行遍历和进一步的索引,因此在利用该搜索引擎进行查询时,用户将无法获得该网页的任何信息。

    二是需要对存储在搜索引擎本地数据库的网页信息进行必要的分析和索引。分析的目的在于解析网页内容,如今天的搜索引擎可以查询诸如Word文档和Flash动画等各种常见格式的文件,这个功能就需要搜索引擎对收集来的文件信息进行分析才能实现。索引过程也很复杂,细节我们可以不必关心,不过我们必须理解建立索引的必要性。如果没有索引,对于这些数量极大的网页内容,如果采用直接扫描的方式,仍然不可能在很短的时间内完成用户查询。建立索引好比是图书馆对图书进行重新编码和整理,从而可以在较短的时间内找到所需的内容。本书的后面章节将会介绍很多具体的搜索引擎查询方法,其实每种方法都可能需要不同的索引来处理,所以,搜索引擎的索引量非常大。优秀的索引方法可以极大了提高查询速度,甚至可以达到在毫秒级的查询响应能力。

    到此,搜索引擎就完成了必要的准备工作,开始提供查询服务。在用户输入查询关键词后,搜索引擎利用该关键词到索引中去查询对应的网页,并将命中的网页URL和诸如摘要等相关信息整理出来。由于可能会命中数以万计的网页结果,所以通常搜索引擎只显示部分结果,其他的内容放在“下一页”中显示。因此,这里又产生一个重要问题,把什么网页放在第一页呢?又根据什么把什么网页放在第一条呢?可以想象,应该把用户最想得到的网页结果放在第一页的第一条。这就需要搜索引擎具有相关度排序能力。所谓相关度,可以理解为满足用户需求的程度。由于每个搜索引擎的相关度排序方法都不一样,所以即便是同一个关键词,不同的搜索引擎返回结果也往往具有非常明显的差异。

    图3. 42所示的Google返回结果把“南京财经大学”学校主页放在第一页的第一条,显然是正确的。事实上,Google就是因为使用了被称为PageRank的高级网页相关度排序方法才取得比较好的效果,才在很短的时间内快速成长为一家著名的搜索引擎公司[17]。而百度创始人李彦宏当年发明的超链分析技术也是这样的网页相关度排序方法。可见对于搜索引擎而言,这种网页相关度排序技术非常重要,尤其在强调网页结果查准率高的现在更是如此。

    我们又可以回答一个问题了:为什么搜索引擎的有些结果网页打不开?此时浏览器会显示“无法找到该页”,如图3. 43所示:

    clip_image096

    3. 43 某些通过搜索引擎查询到的不能打开的网页界面(截取于2010-4)

    更为奇怪的是,有时打开某些结果网页,你会发现这个网页压根就没有你所要的内容。其实造成这些现象的原因可能都是一样。因为搜索引擎遍历和索引网页是需要一定时间,也许在当时爬虫遍历网页时,这些网页还存在或者还有某些关键词信息,但是到用户查询的时候,这些网页可能已经被删除,这时会出现上述“无法找到该页”的错误,或者网页URL还有效,但是内容已经被修改,所以压根就没有用户现在所要的内容。

    不过,这个问题并非不能解决。搜索引擎结果页面每条命中网页记录后的“网页快照”就提供了一种获取搜索引擎所存储的网页原始内容的能力。在上述情况出现的时候,可以通过使用网页快照获取所需内容,如图3. 44所示:

    clip_image098

    3. 44 百度搜索引擎中“南京财经大学”命中结果网页的网页快照(截取于2010-4)

    1.2.2 查询结果的显示模式和排序依据

    同样的查询“南京财经大学”在百度中的搜索结果如图3. 45所示:

    clip_image100

    3. 45 利用百度搜索引擎获取“南京财经大学”的查询结果页面(截取于2010-4)

    和图3. 42所示的Google返回结果相比,两者的区别比较明显。不过,我们也能看到它们都有一种同样的模式。一般而言,每个命中网页都会给出诸如网页URL、网页标题、网页摘要等内容。其中网页标题通常就是一个指向网页URL的超文本,而且网页URL还会以绿色显示在网页记录的最底下,网页摘要则仅仅是网页内容中含有关键词的一段文字,这些内容中含有关键词的部分通常都会红色高亮显示以示强调。除此以外,有时搜索引擎还会给出网页更新时间(如2010-4-7)、网页大小(如2K[18])等。再如,如果安装了Google的工具栏,还能够看到网页的PageRank值等。

    当然,在结果网页列表中,最令用户关心的其实还是命中网页的次序,这好比是梁山好汉的座次,越靠前越说明该结果网页越重要和越相关。前文说过,这是相关度排序方法在起作用。不过,有一个问题需要回答:搜索引擎是根据什么来排序的?往往在不同的搜索引擎结果中网页次序的差异非常大,即便是同一个搜索引擎的结果都会因为版本不同而有巨大差异。有一个有趣的站点给出了Google英文版和Google中文版的显示结果差异图,网址为:http://www.langreiter.com/exec/google-vs-google.html,如图3. 46所示:

    clip_image102

    3. 46 给出Google英文版和Google中文版在查询“China”时的显示结果差异(截取于2010-4)

    早期的搜索引擎一般都是按照比较传统的方法来对网页进行排序,大概有如下几种方法:

    一是按照词语出现的次数,即词语频率,简称为词频。如果网页A出现了10次“猫”,显然比只出现一次“猫”的网页B更能反映与查询词“猫”的相关性。因此,如果一个网页含有的查询词语越多,一般可以认为该网页和该查询词语的相关度越大。

    二是按照词语出现的位置。如果网页A在标题中出现了“猫”,显然要比在正文中出现“猫”的网页B更能反映与查询词“猫”的相关性。因此,搜索引擎可以根据词语出现位置的不同分别设置不同的权重值,以此反映这种位置不同所产生的相关度差异。

    不过,这些方法都存在着一个致命的问题。谁不想让自己的网页排在搜索引擎返回网页结果的前面呢?网络管理员完全可以通过在自己的网页中重复或者故意在重要位置添加一些流行关键词,从而获得本来并不应该获得的次序提升。我们把这种行为称为“搜索引擎作弊(Search Engine Spam)”。而早期的搜索引擎无一例外都存在着这种被欺骗的可能性。

    如同评价一个人,他自己说怎么怎么好是没有用的,而凭借词频和词语出现位置来评价网页相关性就如同采用这样的自我评价方法一样缺乏客观性。显然,更为客观的方法应该是由别人来评价。对于网页而言,这种所谓的别人评价方法存在吗?完全存在,这就是超链。

    我们做一个分析。如果在查询某一个词语时,有一个Yahoo!的网页和某个用户的个人博客网页都被命中,那么哪个网页更可能与当前查询用户的信息需求相关呢?虽然我们没有具体考察这些网页的内容,但是凭感觉,或者说有相当大的概率可以保证,Yahoo!的网页可能更相关,因为Yahoo!网站知名度高。为什么说Yahoo!网站知名度高呢?因为有很多Internet上的网页都有指向Yahoo!网站网页的超链。对于这种超链,Yahoo!自己无法控制,它们是由其他人在自己网页中建立的,从而较为客观和间接的反映出目标网页的质量和相关性。事实上,Google的PageRank和百度的超链分析技术都基于这种思想来给结果网页进行排序,实践证明该方法很有效。然而,不可否认的是,即便是这种方法,现在也仍然受到多方面的挑战,甚至催生出一种新的职业:SEO(Search Engine Optimizer,搜索引擎优化师),言下之意就是利用搜索引擎排序方法的特点,有意识的对目标网页建立一些超链从而获得查询结果次序的提升。搜索引擎允许正当的优化提升行为,但是会检测那些恶意的提升行为。2006年德国的宝马汽车公司就因为这种恶意提升行为而遭到Google的封杀,以至于当时从Google搜索引擎中再也无法找到德国宝马汽车公司的网站信息,人们形象的称之为“Google死刑”。

    不过,细心的读者可能还会发现百度结果网页的右边还有一组网页结果,这是怎么回事?其实,搜索引擎早已注意到这种排序机制对于企业产品营销是非常重要的,与其你们你抢我夺的来争,不如我搜索引擎自己来卖。搜索引擎可以通过竞价出售的方式来销售某些流行关键词的排序位置,这也是现代搜索引擎一种重要的商业盈利模式。有些搜索引擎将这些竞价排名的网页和一般的网页结果混合在一起,而诸如百度等搜索引擎则在结果网页的右边单独显示这些付费排序结果内容。不管怎么说,竞价排名也成为一种重要的排序指标。

    更有意思的是,有些搜索引擎甚至还允许用户自主选择排序依据,如北大天网的FTP搜索引擎,就可以根据“相关”、“时间”、“大小、“距离”和“稳定”等指标由用户自主选择排序依据,从而方便用户使用,比如,如果要下载的文件较大,则可以按照“大小”排序把大文件放在前面。页面如图3. 47所示:

    clip_image104

    3. 47 北大天网FTP搜索引擎可以根据多种指标对结果进行排序(截取于2004-9)

    最后说明一点,由于搜索引擎爬虫程序会定期重新遍历网页,更新网页索引数据库,所以搜索结果和结果网页的次序并非始终保持不变。有时这些结果网页甚至会显示出剧烈的排名波动,有的网站会在查询结果中突然消失再也找不到,而有的网站则突然名列首位。如Google搜索引擎数据库每月会有一次大规模的升级,产生的这种波动现象被人形象的称之为“Google之舞(Google Dance)”。

    1.3 特种搜索引擎

    除了Web网页搜索引擎外,Internet网络上还有很多特殊类型的搜索引擎,如元搜索引擎、FTP搜索引擎、多媒体搜索引擎和地图搜索引擎等。这些都能够给用户提供一些具有特殊功能的查询方法,它们对Web网页搜索引擎也是一种很好的功能补充。

    1.3.1 元搜索引擎

    元搜索引擎的原理和一般搜索引擎并不一样,它并没有采用标准的爬虫和索引数据库等复杂的结构,相反,它非常简单。

    为什么要使用元搜索引擎?元搜索引擎是如何工作的?在回答这些问题之前,我们先来看看传统Web搜索引擎可能存在的问题。事实上,由于各个Web搜索引擎所使用的爬虫技术和索引技术都各不相同,而且都把实现细节作为核心秘密并不对外公开,所以就使得各个Web搜索引擎的差异很大,比如现代搜索引擎的相关度排序算法都各不相同,通常任何两个搜索引擎都会对同一个查询词语提供完全不一样的结果,如查询“期货行情”,百度的查询结果和Google的查询结果如图3. 48所示:

    clip_image106 clip_image108

    3. 48 在百度和Google中查询“期货行情”的不同显示结果页面(截取于2010-7)

    这就会造成一些困惑,究竟什么网页是用户最想得到的?而且不同的搜索引擎优点和强项也各不一样,经常有人形象的说“内事问百度,外事问Google”,说白一点,就是百度查询中文信息更为方便一些,而Google查询外文信息则更为强大。

    能不能把所有搜索引擎的功能结合起来提供一个更为强大的搜索引擎?这就是元搜索引擎。一般而言,元搜索引擎往往能够提供更为方便和强大的查询界面接口,用户使用起来更为方便,如有的元搜索引擎增加了时间查询功能,有些还能够将网页查询、词典查询、百科查询和寻人服务等全部结合成一个一站式的查询站点。当然,元搜索引擎自身没有任何爬虫和索引,不过它会将用户的查询转发到其他真正的Web搜索引擎中,一般的转发方式是转发给多个搜索引擎,然后将获取到的不同搜索引擎的查询结果集中起来,按照自己提出的相关度排序算法重新排序和筛选,整理出最终的查询结果返回给用户。复杂的转发方式甚至可以根据用户查询的不同而转发到不同的搜索引擎和一些信息查询站点,以充分发挥其他搜索引擎和信息查询站点的特殊优势,最终也把结果整理后返回给用户。所有这些处理步骤用户都是看不见的,用户唯一能够感受到的只有一个功能更为强大和全面的搜索引擎,那就是元搜索引擎。

    不妨做个比喻,比如火车订票,如果直接到火车站去购票,虽然可以直接获得所需的车票,但是有时并不方便。借助票务公司,上述缺点都可以很好的得以解决,虽然他们的火车票最终仍然来自于火车站。用户直接把请求提交给票务公司,票务公司利用火车站的资源,通过增加自己的服务内容以方便用户使用,最终将火车票返回给用户。我们可以把火车站看成是一个搜索引擎,而把票务公司看成是元搜索引擎,而用户的买票则可以看成是信息查询。

    目前,主要的元搜索引擎有两种类型:元搜索引擎站点和桌面元搜索引擎。

    1.3.1.1 元搜索引擎站点

    元搜索引擎站点是以Web网站的形式提供服务,和一般的搜索引擎相比,外观和使用方式十分相似。它们有Metacrawler、iTools和Dogpile等。

    1)Metacrawler

    最早的元搜索引擎就是于1995年由华盛顿大学(University of Washington)学生埃里克·塞尔伯格(Eric Selberg)和奥林·艾兹尼(Oren Etzioni)设计的Metacrawler,现在它主要利用Google、Yahoo!、Bing和Ask等搜索引擎来提供查询服务。它的名字直接翻译过来就是“元爬虫”,这恐怕也是元搜索引擎名称中那个“元”的来历。它的网址为:http://www.metacrawler.com,主页如图3. 49所示:

    clip_image110

    3. 49 Metacrawler元搜索引擎的主页界面(截取于2010-7)

    值得注意的是,该元搜索引擎不能很好的支持中文信息查询。如查询“Investment(投资)”,结果页面如图3. 50所示:

    clip_image112

    3. 50 在Metacrawler元搜索引擎中查询“Investment”的结果页面(截取于2010-7)

    除了能够在网页上部看到明显的“View Results From(查看结果来自于)”说明外,每条记录的后面都跟有诸如“Found on Google, Bing, Yahoo! Search(在Google,Bing,Yahoo! 中查询到)”之类的说明,不同的命中结果都会跟随不一样的来源搜索引擎名称,而且这些结果的内容和排序都和后台搜索引擎并不一样。Metacrawler还在结果网页中提供很多更为强大的查询功能。如扩展查询,它显示在页面的右部,标题为“Are you looking for(你是不是要找)”。同时,还有历史查询记录(Recent Searches)和流行查询词(Popular Searches)。

    除了这些功能外,Metacrawler还具有黄页查询和百页查询等高级功能,其中黄页查询包括了Metacrawler提供的百页查询服务,即寻人服务。在Metacrawler主页点击“Yellow Pages(黄页)”,即可看到黄页查询页面,如图3. 51所示:

    clip_image114

    3. 51 Metacrawler元搜索引擎提供的黄页查询(截取于2010-7)

    在此用户可以查询企业、个人和地图等信息,Metacrawler通过Superpages黄页站点[19]返回公司目录信息,通过Intelius寻人查询站点[20]来提供寻人服务。如查询“Microsoft(微软)”的公司信息,查询结果如图3. 52所示:

    clip_image116

    3. 52 在Metacrawler元搜索引擎黄页查询中查询“Microsoft”的结果页面(截取于2010-7)

    2)iTools

    iTools也是一款非常不错的Web元搜索引擎。和Metacrawler相比,它所收录的搜索引擎和提供的功能更多。网址为:http://www.itools.com,主页如图3. 53所示:

    clip_image118

    3. 53 iTools元搜索引擎的主页界面(截取于2010-7)

    iTools也不能很好的支持中文查询,但是它提供的查询功能确实太多,主要分为三大类,分别是“Search Tools(查询工具)”、“Language Tools(语言工具)”和“Research Tools(研究工具)”。所有的工具都有默认的搜索引擎或者查询站点,用户可以更改这些设定。在页面的左边有一个列表,比如点击“Search Tools(查询工具)”即可看到查询工具的默认搜索引擎设置,并可以更改,不过和Metacrawler能够同时查询多个搜索引擎不一样,iTools中的一个查询功能只能设定一个默认的搜索引擎来查询,页面如图3. 54所示:

    clip_image120

    3. 54 在iTools元搜索引擎中更改默认的查询工具设置(截取于2010-7)

    对于语言工具和研究工具而言,iTools的功能也非常多,如语言工具中利用Merriam-Webster(韦氏词典)提供的词典服务和利用微软Encarta在线百科全书提供的百科全书查询服务等。相关查询界面如图3. 55所示:

    clip_image122

    3. 55 iTools元搜索引擎提供的语言工具和研究工具(截取于2010-7)

    1.3.1.2 桌面元搜索引擎

    由于元搜索引擎实现难度小,完全可以将其制作成一个可以运行在计算机上的应用程序,这样用户只需打开这个程序就可以使用元搜索引擎的各项功能。这种程序被称为桌面元搜索引擎。这些软件大多都可以从Internet中下载,一般的软件下载站点中“网络工具”的“网络搜索”栏目都会有收藏。

    1)飓风搜索通

    它是一个桌面应用程序,可以将用户查询转发到包括百度、Google等在内共7个搜索引擎,并将结果集中显示在该程序界面中。如查询“汇率”相关网页结果,用户能够看到明显的在各个搜索引擎中查询结果的获取进度,界面如图3. 56所示:

    clip_image124

    3. 56 在飓风搜索通中查询“汇率”的程序运行界面(截取于2010-7)

    点击具体的每一个搜索引擎,可以看到该搜索引擎的查询结果,如图3. 57所示:

    clip_image126

    3. 57 在飓风搜索通中查询百度搜索引擎获取的“汇率”相关网页结果(截取于2010-7)

    该桌面搜索引擎还可以允许用户通过提交自定义搜索引擎来扩展系统的查询功能。

    2)搜索奇兵

    该系统功能更为强大一些,不仅可以对多个搜索引擎进行同步查询,而且还增加了诸如过滤重复域名、按更新时间排序、验证网址方法是否更加先进与稳定、过滤不合适字词等功能,这些功能都是对现有搜索引擎功能的扩充和完善。如查询“iphone”的相关查询结果界面如图3. 58所示:

    clip_image128

    3. 58 在搜索奇兵中查询“iphone”相关网页结果(截取于2010-7)

    1.3.2 FTP搜索引擎

    FTP是早期Internet所提供的文件查询服务,但是随着WWW服务的出现,FTP并没有消失,相反,人们在很多情况下仍然需要使用这种功能,特别是在查询音乐、软件、电子书或者视频等文件信息的时候,利用FTP可以一步到位的找到所需文件。Internet上现在仍有很多FTP服务器在运行,其中相当一部分是免费的FTP服务器。然而,我们需要知道哪个FTP服务器上有哪些文件,这也是早期Archie出现的原因之一。

    和元搜索引擎一样,在Internet上有专门的基于WWW方式访问的FTP搜索引擎站点和桌面FTP搜索引擎程序,这些不论是在功能上还是界面易用度上,都比早期的Archie等工具更为优秀。

    1.3.2.1 FTP搜索引擎站点

    1)北大天网

    它是一款国内较为著名的FTP搜索引擎,由北京大学计算机网络与分布式系统实验室运行维护。它提供了网页查询和FTP文件查询两种主要功能。网址为:http://e.pku.edu.cn,主页如图3. 59所示:

    clip_image130

    3. 59 北大天网FTP搜索引擎的主页界面(截取于2005-12)

    点击主页上的“搜索文件”就可以查询FTP文件。如查询开发工具“JDK”的软件包文件,可以直接在搜索框中输入“JDK”,即可得到命中结果。和一般的Web搜索引擎不一样的地方在于,这些命中结果都是可以直接下载的FTP文件链接,界面如图3. 60所示:

    clip_image132

    3. 60 在北大天网FTP搜索引擎中查询“JDK”的相关FTP文件结果页面(截取于2005-12)

    北大天网还允许用户对结果按照不同指标进行排序已得到合适的结果次序。同时借助FTP搜索引擎,我们还可以得到更多的相关查询结果。比如既然命中的FTP服务器上有JDK的相关文件,那么它就应该还具有与此相关的更多资源。如在上述结果界面中点击“资源位置”链接,即可打开相应结果所在的FTP服务器文件目录,从中可以看出与JDK相关的其他一些开发工具也都可以下载使用,界面如图3. 61所示:

    clip_image134

    3. 61 在北大天网FTP搜索引擎中进一步查询与“JDK”相关的其他FTP文件结果(截取于2005-12)

    2)Grid FTP搜索引擎

    它是由中国科学技术大学网络信息中心网络技术研究中心运行维护的FTP搜索引擎,既可以进行中国科学技术大学的校园FTP资源查询,也可以用于Internet中FTP资源的查询。在功能上,它可以查询诸如文件和影视等各种常见FTP资源。网址为:http://grid.ustc.edu.cn,主页如图3. 62所示:

    clip_image136

    3. 62 Grid FTP搜索引擎的主页界面(截取于2010-7)

    3)FileWatcher(文件看守者)

    它是一款国外的FTP搜索引擎。除了支持一般的FTP文件名称查询外,还支持部分文件内容的查询功能,甚至提供了很多布尔查询和模糊查询功能。网址为:http://www.filewatcher.com,主页如图3. 63所示:

    clip_image138

    3. 63 FileWatcher FTP搜索引擎的主页界面(截取于2010-7)

    比如查询“carrace(赛车游戏)”,界面如图3. 64所示:

    clip_image140

    3. 64 在FileWatcher FTP搜索引擎中查询“carrace”的结果页面(截取于2010-7)

    所有的查询结果文件只要能够找得到,一般都可以直接点击下载,这是FTP搜索引擎最为重要的一个特点。

    FileWatcher另一个非常强大的地方在于它还支持正则查询(Regex Query)。比如正则查询表达式“^car*game”就表示“以car开头并后接game”的相关词语,查询结果如图3. 65所示:

    clip_image142

    3. 65 在FileWatcher FTP搜索引擎中进行正则查询“^car*game”的结果页面(截取于2010-7)

    1.3.2.2 桌面FTP搜索引擎

    此类桌面FTP搜索引擎有很多。和桌面元搜索引擎一样,这些软件也多位于下载站点中“网络工具”的“网络搜索”栏目。此类搜索引擎软件不带有自己的索引,往往只提供一个类似于爬虫的搜索程序,可以扫描FTP服务器来获取相应的文件资源信息。

    FTP搜索利器就是一款常见的桌面FTP搜索引擎软件,该软件允许用户设置起始IP和结束IP,并自动扫描此IP段的所有的FTP服务器,并可以浏览相应FTP服务器下的所有文件信息。程序界面如图3. 66所示:

    clip_image144

    3. 66 FTP搜索利器的程序运行界面(截取于2010-7)

    1.3.3 多媒体搜索引擎

    从概念上看,多媒体搜索引擎是相对于一般文本搜索引擎而言的,也就是说,利用该搜索引擎用户可以查询诸如图片、视频和音频等多媒体信息。事实上,现阶段的大多数搜索引擎都支持多媒体查询功能,如百度的MP3搜索和Google的图片搜索等。

    然而,现阶段的多媒体搜索引擎都是利用文字信息来查询,这种方式被称之为基于文本(Text-based)的多媒体查询方法。虽然看起来比较简单和易于使用,但是由于一般的多媒体数据信息通常都会缺乏必要的文字信息说明,而且在现阶段人们还难以有效和快速的从多媒体信息中抽取文字信息内容,所以利用文字信息进行查询的效果通常都不是很好。

    随着技术的发展,人们也逐渐推出了一些更为高级的利用多媒体信息自身特征数据进行查询的方法,如按照音乐风格和图片颜色等方法,这种方式被称之为基于内容(Content-based)的多媒体查询方法。

    本节分别介绍图片搜索引擎、音乐搜索引擎和视频搜索引擎等三种最为常见的多媒体搜索引擎,同时对基于文本的查询方法和基于内容的查询方法也分别予以说明。

    1.3.3.1 图片搜索引擎

    比如百度的图片搜索引擎,用户可以从百度的主页选择“图片”进入,也可以直接进入它的网址,为:http://image.baidu.com,主页如图3. 67所示:

    clip_image146

    3. 67 百度图片搜索引擎的主页界面(截取于2010-7)

    比如想查询中国工商银行的标志图片,可以直接输入“中国工商银行标志”,查询结果如图3. 68所示:

    clip_image148

    3. 68 在百度图片搜索引擎中查询“中国工商银行标志”的结果页面(截取于2010-7)

    虽然此次查询效果不错,但也需要掌握很多的查询方法和注意事项。

    首先应当理解,这种基于文字的多媒体查询对于较为常见的普通查询效果一般都不错,但是对于功能较为独特、专指性较强的查询而言,则效果往往不甚理想。如查询“南京财经大学信息工程学院”,查询结果如图3. 69所示:

    clip_image150

    3. 69 在百度图片搜索引擎中查询“南京财经大学信息工程学院”的结果页面(截取于2010-7)

    显然结果不够理想,这些图片都是南京财经大学的校园图片。造成这种现象的主要原因有两个:一个相关图片可能确实很少,二是相关图片可能没有足够的有效文字进行描述,因此无法查询出来。

    第二是要注意准确表达用户查询需求。如查询苹果公司的著名标记,直接输入“苹果”,查询结果多为水果类图片,如图3. 70所示:

    clip_image152

    3. 70 在百度图片搜索引擎中查询“苹果”的结果页面(截取于2010-7)

    此时可以考虑使用其他图片搜索引擎,更换查询词语或者采用更多的文本查询策略等方法,这些内容在下一章有专门说明。

    第三可以考虑使用一些基于内容的查询方法,如在百度图片搜索引擎中,我们能够在搜索框下方看到诸如“新闻图片”、“全部图片”、“壁纸”、“表情”和“头像”之类的类别说明,甚至还有更为高级的“图片尺寸”和“图片颜色”,其中“图片颜色”就可以看成是一种典型的基于内容的查询方法,如选择“黑色”,因为苹果水果不可能为黑色,相反一些产品商标则更易于采用黑色之类的典雅设计方案,查询结果如图3. 71所示:

    clip_image154

    3. 71 在百度图片搜索引擎“苹果”查询结果页面中选择“黑色”图片(截取于2010-7)

    随着技术的发展,现代图片搜索引擎的查询功能更为完善和丰富,如Idée公司实验室[21]推出的几款基于颜色和图片相似度的搜索引擎系统等。如其中基于颜色的图片搜索引擎允许用户选择图片所具有的颜色,自由查询相应的图片,结果如图3. 72所示:

    clip_image156

    3. 72 在Idée公司实验室图片搜索引擎中根据颜色查询图片的结果页面(截取于2010-7)

    1.3.3.2 音乐搜索引擎

    音乐搜索引擎属于音频搜索引擎的一种。早期百度提供的MP3搜索就是一种著名的音乐搜索引擎,网址为:http://mp3.baidu.com,主页如图3. 73所示:

    clip_image158

    3. 73 百度MP3搜索引擎的主页界面(截取于2010-7)

    它提供了诸如基于歌曲名称、歌手和歌词等文本查询方法,也允许用户选择音乐文件的类型,如“MP3”、“rm”和“wma”等格式。其中的“视频”查询只是将音乐查询和视频查询功能结合在一个界面上,本质仍然是视频查询而已。

    下面重点介绍一下Google的音乐搜索引擎。因为它提供了一个极为有趣的、基于内容的查询方法,网址为:http://www.google.cn/music,主页如图3. 74所示:

    clip_image160

    3. 74 Google音乐搜索引擎的主页界面(截取于2010-7)

    点击其中的“挑歌”,即可打开一个界面,允许用户按照包括“节奏”、“声调”、“音色”在内的歌曲风格,以及“年代”、“歌手”、“流派”和“语言”等多项指标来进行复合查询。如查询2001年到2003年间、声调低沉并且音色丰富的歌曲,查询结果如图3. 75所示:

    clip_image162

    3. 75 在Google音乐搜索引擎通过音乐风格来挑歌(截取于2010-7)

    任意选择一个歌曲,都可以打开Google的在线试听音乐页面,直接听取歌曲和浏览歌词,同时还能查询“相似歌曲”和下载所需歌曲,界面如图3. 76所示:

    clip_image164

    3. 76 Google音乐搜索引擎的在线试听音乐界面(截取于2010-7)

    1.3.3.3 视频搜索引擎

    视频查询是这些多媒体搜索引擎中功能最为复杂的一个,实现难度也最大。为了提供查询的准确度和满足用户对最新视频的查询需求,现阶段的搜索引擎多采用与著名媒体和其他视频内容提供商合作的方式来提供视频查询服务。如百度的视频搜索引擎网址为:http://video.baidu.com,主页如图3. 77所示:

    clip_image166

    3. 77 百度视频搜索引擎的主页界面(截取于2010-7)

    不同类型的多媒体往往具有不同的查询特征,如对于视频而言,字幕信息就是一种极为重要的语义描述信息,画质和片长也是常见的查询字段,这些功能都可以在高级搜索界面中进行选择。如在Google视频搜索引擎的“高级搜索”界面中,查询谈论中国经济发展前景的中文短片视频,设置界面如图3. 78所示:

    clip_image168

    3. 78 在Google视频搜索引擎“高级搜索”中查询谈论中国经济发展前景的中文短片视频(截取于2010-7)

    在查询结果中,Google自动打开“Google百宝箱”从而展示了更多的查询选择指标,如图3. 79所示:

    clip_image170

    3. 79 在Google视频搜索引擎中查询谈论中国经济发展前景的中文短片视频的结果页面(截取于2010-7)

    1.3.4 地图搜索引擎

    地图搜索引擎作为一种特殊的搜索引擎,它在现代搜索引擎中的作用越来越大,很多结合购物、旅游和交友的信息查询服务都开始与地图搜索引擎进行结合,从而为用户提供更为方便和直观的体验。国外的Google地图搜索引擎、国内早期的“图行天下(Go2map)”[22]都是一些比较有代表性的地图搜索引擎。

    Google地图搜索引擎是近年来受到关注最多的一款。早在2004年,Google就通过收购卫星影像提供商Keyhole,使用Keyhole的Quick Bird(捷鸟)卫星影像,开始对外提供地图搜索服务。后来该项服务开始与生活搜索、移动搜索等进行结合,并允许用户通过Google地图搜索引擎提供的专门方法,可以很方便的将这些地图查询功能集成到自己的网站系统中,影响度很快得以扩大。它的网址为:http://maps.google.com,主页如图3. 80所示:

    clip_image172

    3. 80 Google地图搜索引擎的主页界面(截取于2010-7)

    用户可以直接在搜索框中输入所要显示的城市名称,中英文都支持,如查询“北京”的地图信息,显示结果如图3. 81所示:

    clip_image174

    3. 81 在Google地图搜索引擎中查询“北京”的结果页面(截取于2010-7)

    用户可以拖拽地图左边的缩放尺来缩放地图,还可以点击地图右上角的诸如“路况”和“卫星”等按钮来改变地图的显示内容,如切换为“卫星”视图后将会显示北京城市的卫星拍摄地图,如图3. 82所示:

    clip_image176

    3. 82 在Google地图搜索引擎中查询“北京”的卫星地图页面(截取于2010-7)

    更为有意思的是,Google地图还提供了街景浏览功能。用户只需将缩放尺上边的黄色小人拖拽到地图上,此时可以显示那个位置的街景照片。对于有些城市,Google还提供了三维街景视图,如香港浅水湾地区的三维街景视图如图3. 83所示:

    clip_image178

    3. 83 在Google地图搜索引擎中查询“香港浅水湾”的三维街景地图页面(截取于2010-7)

    而且,近年来Google也将很多其他的信息查询服务与地图查询结合了起来,如和公交查询结合等。如查询从南京火车站到南京财经大学仙林校区的的士路线,同时显示当前路况信息,结果如图3. 84所示:

    clip_image180

    3. 84 在Google地图搜索引擎中查询公交信息和路况信息(截取于2010-7)


    [1] 2009-2010年iResearch艾瑞咨询中国搜索引擎市场份额报告. http://www.iresearch.com.cn/Report/1360.html. 2010-3.

    [2] 扩检是指扩展检索,意即对当前查询词语的语义进行分析,找到更为一般的、或者与此相关的其他查询词语来提供给用户在做进一步查询时使用。

    [3] Surf是指冲浪,这里意指所谓的网上冲浪,通常上网的用户也被称为“冲浪者(Surfer)”。

    [4] 所谓搜索造假者,是指一些恶意的网站管理者通过故意修改网页内容来设法提升自己网页在搜索引擎命中结果中的位置,或者使得用户在输入一些常见词语进行查询的时候,也能很方便的找到网站管理者自己的网页。显然,这种行为并不公平,而且会极大影响搜索引擎自身的声誉。

    [5] 微软早期推出的搜索引擎也很著名,如MSN Search、Live Search等,2009年微软推出了Bing(中文名称是“必应”),并同时停止了原有的那些搜索引擎服务。

    [6] 按点击付费(Pay Per Click)的搜索引擎盈利模式最早是由Goto搜索引擎提出的,它允许网站管理者实时进行查询结果的排序,客户可以花钱购买排序的位置,通过拍卖的形式将相关网站放在前面,但同时明确标出这个查询结果是付费的。这种方式给它带来了巨大的收益。2001年,Goto更名为Overture。

    [7] googol是美国数学家Edward Kasner的侄子Milton Sirotta创造的一个词。

    [8] Alpha版和Beta版都是软件开发中的常见术语。一般而言,所谓Alpha版是指尚未交付使用的测试版本,而Beta版是指可以运行的最终发布版本。

    [9] Google高价购回中国域名十九个字母百万. http://www.sh.xinhuanet.com/2005-04/29/content_4156067.htm. 2009-10.

    [10] 2010年4月,Google已经退出中国内地市场,所以域名自动定向到香港服务器下,同样,此前号称最短的域名www.g.cn和中国域名www.google.cn也都会自动定向过去。

    [11] 微软的“杜威女士”搜索引擎已于2009年底关闭服务。

    [12] 在2010年4月2日的Ask主页上,我们能够看到一个“Question of the Day(每天一问)”,如“What year brought the most abundant Swiss spaghetti harvest(瑞士面条树大丰收是哪一年出现的)?”。这其实是个愚人节玩笑,1957年愚人节BBC新闻中说,瑞士的面条树大丰收,农民都在树上收割面条。大量观众上当受骗,打电话来咨询面条树的种植方法。BBC对此的回复是:把一根面条插在番茄酱里,然后就等着吧。

    [13] 从字面看,ESP是指超感觉的知觉(Extra-Sensory Perception),即俗称的第六感。这个名称反映了用户在使用该技术查询时,仿佛具有第六感,比较容易获得自己想要的东西。

    [14] Logo中那个蓝色的图案是个熊掌。之所以这样,据说在创立的时候,百度开发者觉得其他的搜索引擎网站太沉闷,而选择的熊掌则比较俏皮可爱。话说回来,很多其他搜索引擎也常常都有一个动物图腾,如搜狐有“狐狸”等。

    [15] 《搜索引擎—原理、技术与系统》官方电子版本的下载地址为:http://sewm.pku.edu.cn/book/LxmYhfWjm_v1.0.pdf。

    [16] Z. Bar-Yossef and M. Gurevich. Random sampling from a search engine's index. In Proceedings of 15th International World Wide Web Conference, 2006.

    [17] Google创始人塞吉•布林(Sergey Brin)就曾经发表过一篇探讨PageRank的经典论文《The pagerank citation ranking: Bringing order to the web(PageRank排序方法:给Web带来次序)》,斯坦福大学的数字图书馆就有电子全文的下载服务,网址为:http://ilpubs.stanford.edu:8090/422。今天的Google站点还收集着有关Google技术细节的更多相关论文,网址为:http://research.google.com/pubs/papers.html。

    [18] 1K约为1000个英文字符,或者500个汉字字符。

    [19] Superpages黄页站点的网址为:http://www.superpages.com。

    [20] Intelius寻人查询站点的网址为:http://www.intelius.com。

    [21] Idée公司实验室的网址为:http://labs.ideeinc.com。

    [22] 2005年4月12日搜狐收购了图行天下,将其地图数据引入到自己的搜索引擎搜狗之中。

    展开全文
  • 主要介绍了PHP记录搜索引擎蜘蛛访问网站足迹的方法,实例分析了针对php记录搜索引擎蜘蛛访问足迹的技巧,涉及数据库的创建及php记录各类常见搜索引擎访问的方法,需要的朋友可以参考下
  • 了解搜索引擎技术

    千次阅读 2010-06-09 14:53:00
    全文搜索引擎是名副其实的搜索引擎,国外代表Google,国内则著名的百度搜索。它们从互联网提取各个网站的信息(以网页文字为主),建立起数据库,并能检索与用户查询条件相匹配的记录,按一定的排列顺序返回结果...
  • SEO搜索引擎优化 | hexo

    千次阅读 2018-05-08 10:18:54
    这里主要是对网上常见的hexo的SEO方法进行整理。 在SEO之前,我们得先让搜索引擎收录我们的站点,具体可以参考让搜索引擎收录hexo博客 | hexo. hexo seo 方法 添加sitemap 参考 让搜索引擎收录hexo博客 | h...
  • 最近一直在研究sphinx的工作机制,在[搜索引擎]Sphinx的介绍和原理探索简单地介绍了其工作原理之后,还有很多问题没有弄懂,比如底层的数据结构和算法,于是更进一步地从数据结构层面了解其工作原理。在网上搜了很...
  • 百度搜索引擎工作原理

    万次阅读 2019-01-13 16:52:00
      关于百度以及其它搜索引擎的工作原理,其实大家已经讨论过很多,但随着科技的进步、互联网业的发展,各家搜索引擎都发生着巨大的变化,并且这些变化都是飞快的。我们设计这个章节的目的,除了从官方的角度发出...
  • 搜索引擎选择: Elasticsearch与Solr

    千次阅读 2018-07-24 17:55:26
    搜索引擎选型调研文档 Elasticsearch简介* Elasticsearch是一个实时的分布式搜索和分析引擎。它可以帮助你用前所未有的速度去处理大规模数据。 它可以用于全文搜索,结构化搜索以及分析,当然你也可以将这三者...
  • 搜索引擎和知识图谱那些事

    万次阅读 2017-09-15 17:41:25
    这是一篇基础性文章,主要介绍搜索引擎和知识图谱的一些原理、发展经历和应用等知识。希望文章对你有所帮助~如果错误或不足之处,还请海涵。(参考资料见后) 一. 搜索引擎 (一).搜索引擎的四个时代 ...
  • 浅论如何优化搜索引擎排名机制

    千次阅读 2018-12-09 00:28:39
    由于近期在开发一个网页搜索应用,因此需要对搜索引擎的排序算法进行一定的了解和研究,又因为课程需要写一篇关于网络技术的论文,因此选用此题,对常见搜索引擎排序算法进行一点简要的分析,并且结合实际应用谈一谈...
  • 本章主要讲的是搜索引擎的优化,包括提高搜索效率(云存储、缓存机制)、提高搜索质量(网页去重、用户搜索意图识别、网页反作弊)及搜索的发展方向。这三个方面是在网页抓取&搜索排序的基础上发展起来的。
  • 搜索引擎优化

    千次阅读 2007-10-09 18:00:00
    SEO 概述搜索引擎(Search Engine)它是一个根据站点内容,将各种站点分门别类的网站。每个引擎的工作原理都不同,的是按META值来分,的是根据页面内容,的按页面标题,还有的将这些方法综合运用。搜索引擎通过...
  • 适合网页设计与开发人员、SEO入门者的搜索引擎优化基础教程 主要内容: SEO常用术语解释 如何让搜索引擎收录网站 SEO的目的 站点自身内部的优化 影响排名的外部因素 常见的黑盒SEO手法 参考文章及网站
  • 搜索引擎反作弊之内容作弊

    万次阅读 2012-03-24 08:53:04
    本文节选自《这就是搜索引擎:核心技术详解》第八章  网页反作弊是目前所有商业搜索引擎需要解决的重要难点,出于商业利益驱使,很多网站站长会针对搜索引擎排名进行分析,并采取一些手段来提高网站排名,...
  • 搜索引擎资源

    千次阅读 2017-03-27 11:08:08
    /检索专家,曾经是V-Twin搜索引擎主要开发者,后在Excite担任高级系统架构设计师,目前从事于一些Internet底层架构的研究。早先发布在作者自己的,他贡献出Lucene的目标是为各种中小型应用程式加入全文检索功能。2...
  • 搜索引擎优化基础与提高,阅读对象:网页设计与开发人员、SEO入门者。文档内包含目前SEO常见的问题及基础解决方法。主要为扫盲专用。乃SEO菜鸟学习与提高必备利器!
  • 简单搜索引擎模型

    千次阅读 2010-07-16 22:30:00
    简单搜索引擎模型 A Simple Scratch of Search Engine 作者 史春奇, 搜索工程师, 中科院计算所毕业, chunqi.shi@hotmail.com 1, 需求迫切 2, 搜索引擎简单模型 3, 信息导航模型 4, 商家推广模型 5, 未来 ...
  • 自己动手实现主题搜索引擎

    千次阅读 2016-05-30 21:13:57
    1.前言:   软件设计要...2.简介  本项目主要实现了一个主题搜索引擎。主题搜索引擎是针对某一个领域的专业搜索引擎,是搜索引擎的细分和延伸,是对网页库中的某类专门的信息进行一次整合,定向分字段抽取出需要的
  • 搜索引擎-网络爬虫

    千次阅读 2017-03-27 10:48:33
     通用搜索引擎的处理对象是互联网网页,目前网页数量以百亿计,搜索引擎的网络爬虫能够高效地将海量的网页数据传下载到本地,在本地 形成互联网网页的镜像备份。它是搜索引擎系统中很关键也很基础的构件。 1...
  • 搜索引擎 Solr 简介

    千次阅读 2018-07-19 16:02:52
    1.前言 企业站内搜索技术选型 在一些大型门户网站、电子商务网站等都需要站内搜索功能,使用...单独使用Lucene实现站内搜索需要开发的工作量较大,主要表现在:索引维护、索引性能优化、搜索性能优化等,因此不建...
  • 浅谈垂直搜索引擎技术

    千次阅读 2016-05-13 11:34:36
    搜索引擎成为web2.0发展的一道风景线的今天,为信息查找提供更时效性、针对性、准确性的垂直搜索引擎越来越受到网络用户的青睐。本论文以垂直搜索为主题,介绍搜索引擎的发展及其现状,对比通用搜索引擎和垂直...
  • 搜索引擎语法汇总

    万次阅读 2009-09-28 10:30:00
    通过搜索引擎来查找自己想要的网址或信息是最快捷的方法,也是最佳途径。因此,掌握基本的搜索语法及使用方法对每个冲浪者是十分重要的。 搜索引擎一般是通过搜索关键词来完成自己的搜索过程,即填入一些简单的...
  • 搜索引擎营销推广技巧

    千次阅读 2018-06-09 21:56:35
    一般认为,搜索引擎优化设计主要目标2个层次:被搜索引擎收录、在搜索结果中排名靠前。 搜索引擎在互联网上的作用非常重要,大多数网民在寻找某个信息的时候都会使用搜索引擎来寻找,将网站地址排在搜索结果的第...
  • 搜索引擎的工作原理

    千次阅读 2014-03-16 17:11:35
    爬行和抓取是搜索引擎工作的第一步,主要是完成数据的收集任务;  解释几个关键词:  1,蜘蛛: (1)定义:我把他它叫做抓取网页数据时的执行者,其实它就是一个计算机程序,因为这个工作过程与现实中的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 99,004
精华内容 39,601
关键字:

常见的搜索引擎主要有