﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-PYTHON爱好者-随笔分类-搜索技术</title><link>http://www.cnitblog.com/donne/category/6613.html</link><description>PYTHON, twisted, 网络编程。</description><language>zh-cn</language><lastBuildDate>Wed, 28 Sep 2011 09:17:06 GMT</lastBuildDate><pubDate>Wed, 28 Sep 2011 09:17:06 GMT</pubDate><ttl>60</ttl><item><title>linux下crontab定时执行任务</title><link>http://www.cnitblog.com/donne/archive/2008/02/18/39878.html</link><dc:creator>Don Li</dc:creator><author>Don Li</author><pubDate>Mon, 18 Feb 2008 05:53:00 GMT</pubDate><guid>http://www.cnitblog.com/donne/archive/2008/02/18/39878.html</guid><wfw:comment>http://www.cnitblog.com/donne/comments/39878.html</wfw:comment><comments>http://www.cnitblog.com/donne/archive/2008/02/18/39878.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/donne/comments/commentRss/39878.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/donne/services/trackbacks/39878.html</trackback:ping><description><![CDATA[<p>1.需要移植crond和crontab</p>
<p>crontab使用大概有两种，一种是修改全局配置文件/etc/crontab,另一种是直接运行命令crontab -e.</p>
<p>全局配置没有详细测试,似乎直接运行crontab -e方便一些.</p>
<p>1.先把要加入定时任务的脚本写好</p>
<p>比如可以写test：</p>
<p>#!/bin/sh<br>cd /home/a<br>echo "Hello World!" &gt; hello<br>ls -l &gt; mm</p>
<p>2.执行命令 crontab -e,此时系统会打开一个vi编辑器.</p>
<p>3.输入</p>
<p>59 23 * * *&nbsp;&nbsp;&nbsp; /home/a/test</p>
<p>表示每天23:59运行脚本bakuplog.sh.前面的时间格式为&#8220;M H D m d cmd&#8221;。其中，M代表分钟（0～59），H代表小时（0～23），D代表天（1～31），m代表月（1～12），d代表一星期内的天（0～6，0为星期天）。*表示任何.例如01 * * * * 表示每小时的01分执行.<br></p>
<p><br><font size=2>时程表的格式如下: <br>　　f1 f2 f3 f4 f5 program <br><br>　　其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程式。 <br>　　当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程式,其余类推 <br>　　当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推 <br>　　当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余类推 <br>　　当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其余类推 <br>　　使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。 </font><br><br><br><br>4.重新启动这个进程</p>
<p>/etc/init.d/cron restart<br>或<br>service crond restart</p>
<img src ="http://www.cnitblog.com/donne/aggbug/39878.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/donne/" target="_blank">Don Li</a> 2008-02-18 13:53 <a href="http://www.cnitblog.com/donne/archive/2008/02/18/39878.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>让putty支持中文输入和显示</title><link>http://www.cnitblog.com/donne/archive/2008/02/15/39768.html</link><dc:creator>Don Li</dc:creator><author>Don Li</author><pubDate>Fri, 15 Feb 2008 02:37:00 GMT</pubDate><guid>http://www.cnitblog.com/donne/archive/2008/02/15/39768.html</guid><wfw:comment>http://www.cnitblog.com/donne/comments/39768.html</wfw:comment><comments>http://www.cnitblog.com/donne/archive/2008/02/15/39768.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnitblog.com/donne/comments/commentRss/39768.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/donne/services/trackbacks/39768.html</trackback:ping><description><![CDATA[对于经常在windows下远程ssh到linux的用户而言，putty可能是你最好的选择。<br><br>可是缺省情况下，putty对中文的支持却让人不敢恭维，如果远程linux的locale设置为zh_CN.*(bg2312,gbk,utf8等等），显示就是乱码。经研究发现，其实putty的中文支持还是很好的，呵呵<br><br>打开putty主程序，选择window-〉Appearance-〉Font settings-〉Change...,选择Fixedsys字体,字符集选择CHINESE_GB2312。<br>在window-〉Appearance-〉Translation中，Received data assumed to be in which character set 中,把Use font encoding改为UTF-8.<br>如果经常使用,把这些设置保存在session里面.<br><br>现在打开putty,登录成功后,在shell中输入:export LC_ALL='zh_CN.utf8',现在已经可以完美的支持中文了<img class=inlineimg title=微笑 src="http://www.linuxsir.org/bbs/images/smilies/smile.gif" border=0><br><br>可以打开vim输入中文测试一下,而且也不会出现删除半个汉字的问题.
<img src ="http://www.cnitblog.com/donne/aggbug/39768.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/donne/" target="_blank">Don Li</a> 2008-02-15 10:37 <a href="http://www.cnitblog.com/donne/archive/2008/02/15/39768.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Doug Cutting 访谈录 -- 关于搜索引擎的开发</title><link>http://www.cnitblog.com/donne/archive/2007/12/17/37798.html</link><dc:creator>Don Li</dc:creator><author>Don Li</author><pubDate>Mon, 17 Dec 2007 09:10:00 GMT</pubDate><guid>http://www.cnitblog.com/donne/archive/2007/12/17/37798.html</guid><wfw:comment>http://www.cnitblog.com/donne/comments/37798.html</wfw:comment><comments>http://www.cnitblog.com/donne/archive/2007/12/17/37798.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/donne/comments/commentRss/37798.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/donne/services/trackbacks/37798.html</trackback:ping><description><![CDATA[&nbsp;作为<a href="http://lucene.apache.org/" target=_blank><u><font color=#0000ff>Lucene</font></u></a>和<a href="http://lucene.apache.org/nutch/" target=_blank><u><font color=#0000ff>Nutch</font></u></a>两大Apach Open Source Project的始创人(其实还有Lucy, Lucene4C 和Hadoop等相关子项目)，Doug Cutting 一直为搜索引擎的开发人员所关注。他终于在为Yahoo以Contractor的身份工作4年后，于今年正式以Employee的身份加入Yahoo<br><br>下面是笔者在工作之余,翻译其一篇2年前的访谈录，<a href="http://blog.outer-court.com/archive/2004_05_28_index.html" target=_blank><u><font color=#0000ff>原文</font></u></a>(Doug Cutting Interview)在网上Google一下就容易找到。希望对搜索引擎开发的初学者起到一个抛砖引玉的效果。<br><br>(注：翻译水平有限，不求雅，只求信，达。希望见谅)<br><br><strong>1。请问你以何为生？你是如何开始从事搜索引擎开发的？<br></strong><br>我主要在家从事两个与搜索有关的开源项目的开发: Lucene和Nutch.&nbsp;钱主要来自于一些与这些项目相关的一些合同中。目前Yahoo! Labs&nbsp;有一部分赞助在Nutch上。这两个项目还有一些其他的短期合同&nbsp;。<br><br><strong>2。你能大概给我们讲解一下Nutch吗？以及你将在哪方面运用它？</strong><br><br>我还是先说一下Lucene吧。Lucene其实是一个提供全文文本搜索的函数库，它不是一个应用软件。它提供很多API函数让你可以运用到各种实际应用程序中。现在，它已经成为Apache的一个项目并被广泛应用着。这里列出一些<a href="http://wiki.apache.org/jakarta-lucene/PoweredBy" target=_blank><u><font color=#0000ff>已经使用Lucene的系统</font></u></a>。<br><br>Nutch 是一个建立在Lucene核心之上的Web搜索的实现，它是一个真正的应用程序。也就是说，你可以直接下载下来拿过来用。它在Lucene的基础上加了网络爬虫和一些和Web相关的东东。其目的就是想从一个简单的站内索引和搜索推广到全球网络的搜索上，就像Google和Yahoo一样。当然，和那些巨人竞争，你得动一些脑筋，想一些办法。我们已经测试过100M的网页，并且它的设计用在超过1B的网页上应该没有问题。当然，让它运行在一台机器上，搜索一些服务器，也运行的很好。<br><br><strong>3。在你看来，什么是搜索引擎的核心元素？也就说，一般的搜索引擎软件可以分成哪几个主要部分或者模块？</strong><br><br>让我想想，大概是如下几块吧：<br><br>&nbsp;-- 攫取(fetching)：就是把被指向的网页下载下来。<br>&nbsp;-- 数据库：保存攫取的网页信息，比如那些网页已经被攫取，什么时候被攫取的以及他们又有哪些链接的网页等等。<br>&nbsp;-- 链接分析：对刚才数据库的信息进行分析，给每个网页加上一些权值(比如PageRank,WebRank什么的)，以便对每个网页的重要性有所估计。不过，在我看来，索引那些网页标记(Anchor)里面的内容更为重要。(这也是为什么诸如Google Bombing如此高效的原因)<br>&nbsp;-- 索引(Indexing): 就是对攫取的网页内容，以及链入链接，链接分析权值等信息进行索引以便迅速查询。<br>&nbsp;-- 搜索(Searching): 就是通过一个索引进行查询然后按照网页排名显示。<br><br>当然，为了让搜索引擎能够处理数以亿计的网页，以上的模块都应该是分布式的。也就是说，可以在多台机器上并行运行。<br><br><strong>4。你刚才说大家可以立马下载Nutch运行在自己的机器上。这是不是说，即便那些对Apache服务器没有掌控权的网站管理员在短时间内就可以使用Nutch?</strong><br><br>很不幸，估计他们大都没戏。因为Nutch还是需要一个Java servlet的容器(笔者注：比如Tomcat)。而这个有些ISP支持，但大都不支持。(笔者注: 只有对Apache服务器有掌控权，你才能在上面安装一个Tomcat之类的东东)<br><br><strong>5。我可以把Lucene和Google Web API结合起来吗？或者和其他的一些我先前写过的应用程序结合起来？<br></strong><br>有那么一帮人已经为Nutch写了一些类似Google的API, 但还没有一个融入现在的系统。估计不久的将来就行了。<br><br><strong>6。你认为目前实现一个搜索引擎最大的障碍在哪里？是硬件，存储障碍还是排名算法？还有，你能不能告诉我大概需要多大的空间搜索引擎才能正常工作，就说我只想写一个针对搜索成千上百万的RSS feeds的一个搜索引擎吧。</strong><br><br>Nutch 大概一个网页总共需要10kb的空间吧。Rss feeds的网页一般都比较小(笔者注: Rss feeds都是基于xml的文本网页，所以不会很大)，所以应该更好处理吧。当然Nutch目前还没有针对RSS的支持。(笔者注：实际上，API里面有针对RSS的数据结构和解析)<br><br><strong>7。从Yahoo! Labs拿到资金容易吗？哪些人可以申请？你又要为之做出些什么作为回报？</strong><br><br>我是被邀请的，我没有申请。所以我不是很清楚个中的流程。<br><br><strong>8。Google有没有表示对Nutch感兴趣？</strong><br><br>我和那边的一些家伙谈过，包括Larry Page(笔者注: Google两个创始人之一)。他们都很愿意提供一些帮助，但是他们也无法找到一种不会帮助到他们竞争对手的合适方式。<br><br><strong>9。你有实现你自己的PageRank或者WebRank算法系统在你的Nutch里吗？什么是你做网页排名(Ranking)的考虑？<br></strong><br>是的，Nutch里面有一个链接分析模块。它是可选的，因为对于站内搜索来说，网页排名是不需要的。<br><br><strong>10。我想你以前有听说过，就是对于一个开源的搜索引擎，是不是意味着同样会给那些搞搜索引擎优化(SEO)的黑客们有机可趁？</strong><br><br>恩，有可能。<br>就说利用反向工程破解的非开源搜索引擎中的最新的反垃圾信息检测算法需要大概6个月的时间。对于一个开放源码的搜索引擎来说，破解将会更快。但不管怎么说，那些制造垃圾信息者最终总能找到破解办法，唯一的区别就是破解速度问题。所以最好的反垃圾信息技术，不管开源也好闭源也好，就是让别人知道了其中的机制之后也能继续工作那一种。<br><br>还有，如果这六月中你是把检测出来的垃圾信息从你的索引中移除，他们无计可施，他们只能改变他们的站点。如果你的垃圾信息检测是基于对一些网站中好的和坏的例子的统计分析，你可以彻夜留意那些新的垃圾信息模式并在他们有机会反应之前将他们移除。<br><br>开源会使得禁止垃圾信息的任务稍稍艰巨一点，但不是使之成为不可能。况且，那些闭源的搜索引擎也并没有秘密地解决这些问题。我想闭源的好处就是不让我们看到它其实没有我们想象的那么好。<br><br><strong>11。Nutch和分布式的网络爬虫<a href="http://grub.looksmart.com/"><u><font color=#0000ff>Grub</font></u></a>相比怎么样？你是怎么想这个问题的？</strong><br><br>我能说的就是，Grub是一个能够让网民们贡献一点自己的硬件和带宽给巨大的LookSmart的爬行任务的一个工程。它只有客户端是开源，而服务端没有。所以大家并不能配置自己的Grub服务，也不能访问到Grub收集的数据。<br><br>更一般意义的分布式网络爬行又如何？当一个搜索引擎变得很大的时候，其爬行上的代价相对搜索上需要付出的代价将是小巫见大巫。所以，一个分布式爬虫并不能是显著降低成本，相反它会使得一些已经不是很昂贵的东西变得很复杂(笔者注：指pc和硬盘之类的硬件)。所以这不是一个便宜的买卖。<br><br>广泛的分布式搜索是一件很有趣的事，但我不能肯定它能否实现并保持速度足够的快。一个更快的搜索引擎就是一个更好的搜索引擎。当大家可以任意快速更改查询的时候，他们就更能在他们失去耐心之前频繁找到他们所需的东西。但是，要建立一个不到1秒内就可以搜索数以亿计的网页的广泛的分布式搜索引擎是很难的一件事，因为其中网络有很高的延时。大都的半秒时间或者像Google展示它的查询那样就是在一个数据中心的网络延时。如果你让同样一个系统运行在千家万户的家里的PC上，即便他们用的是DSL和Cable上网，网络的延时将会更高从而使得一个查询很可能要花上几秒钟甚至更长的时间。从而他也不可能会是一个好的搜索引擎。<br><br><strong>12。你反复强调速度对于搜索引擎的重要性，我经常很迷惑Google怎么就能这么快地返回查询结果。你认为他们是怎么做到的呢？还有你在Nutch上的经验看法如何？</strong><br><br>我相信Google的原理和Nutch大抵相同：就是把查询请求广播到一些节点上，每个节点返回一些页面的顶级查询结果。每个节点上保存着几百万的页面，这样可以避免大多查询的磁盘访问，并且每个节点可以每秒同时处理成十上百的查询。如果你想获得数以亿计的页面，你可以把查询广播到成千的节点上。当然这里会有不少网络流量。<br><br>具体的在<a href="http://www.computer.org/%20micro/mi2003/%20m2022.pdf"><u><font color=#0000ff>这篇文章</font></u></a>（ <a href="http://www.computer.org/micro/mi2003/m2022.pdf"><u><font color=#0000ff>www.computer.org/ micro/mi2003/ m2022.pdf</font></u></a>）中有所描述。<br><br><strong>13。你刚才有提到垃圾信息，在Nutch里面是不是也有类似的算法？怎么区别垃圾信息模式比如链接场(Linkfarms)(笔者注：就是一群的网页彼此互相链接，这是当初在1999年被一帮搞SEO弄出来的针对lnktomi搜索引擎的使网页的排名得到提高的一种Spamdexing方法)和那些正常的受欢迎的站点链接。<br></strong><br>这个，我们还没有腾出时间做这块。不过，很显然这是一个很重要的领域。在我们进入链接场之前，我们需要做一些简单的事情：察看词汇填充(Word stuffing)(笔者注：就是在网页里嵌入一些特殊的词汇，并且出现很多的次，甚至上百次，有些是人眼看不到的，比如白板写白字等伎俩，这也是 Spamdexing方法的一种)，白板写白字(White-on-white text)，等等。<br><br>我想在一般意义上来说(垃圾信息检测是其中的一个子问题)，搜索质量的关键在于拥有一个对查询结果手工可靠评估的辅助措施。这样，我们可以训练一个排名算法从而产生更好的查询结果(垃圾信息的查询结果是一种坏的查询结果)。商业的搜索引擎往往会雇佣一些人进行可靠评估。Nutch也会这样做，但很显然我们不能只接受那些友情赞助的评估，因为那些垃圾信息制造者很容易会防止那些评估。因此我们需要一种手段去建立一套自愿评估者的信任体制。我认为一个平等评论系统(peer-review system),有点像Slashdot的karma系统, 应该在这里很有帮助。<br><br><strong>14。你认为搜索引擎在不久的将来路在何方？你认为从一个开发者的角度来看，最大的障碍将在哪里？<br><br></strong>很抱歉，我不是一个想象力丰富的人。我的预测就是在未来的十年里web搜索引擎将和现在的搜索引擎相差无几。现在应该属于平稳期。在最初的几年里，网络搜索引擎确实曾经发展非常迅速。源于1994年的网络爬虫使用了标准的信息析取方法。直到1998年Google的出现，其间更多的基于Web的方法得到了发展。从那以后，新方法的引入大大放慢了脚步。那些树枝低的果实已被收获。创新只有在刚发展的时候比较容易，越到后来越成熟，越不容易创新。网络搜索引擎起源于上个世纪90年代，现在俨然已成一颗摇钱树，将来很快会走进人们的日常生活中。<br><br>至于开发上的挑战，我认为操作上的可靠性将是一个大的挑战。我们目前正在开发一个类似GFS(Google的文件系统)的东西。它是巨型搜索引擎不可缺少的基石：你不能让一个小组件的错误导致一个大的瘫痪。你应该很容易的让系统扩展，只需往硬件池里加更多硬件而不需繁缛的重新配置。还有，你不需要一大坨的操作人员完成，所有的一切将大都自己搞定。<br><br>----------------完----------------------
<img src ="http://www.cnitblog.com/donne/aggbug/37798.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/donne/" target="_blank">Don Li</a> 2007-12-17 17:10 <a href="http://www.cnitblog.com/donne/archive/2007/12/17/37798.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Lucene倒排索引原理</title><link>http://www.cnitblog.com/donne/archive/2007/12/04/37331.html</link><dc:creator>Don Li</dc:creator><author>Don Li</author><pubDate>Tue, 04 Dec 2007 15:13:00 GMT</pubDate><guid>http://www.cnitblog.com/donne/archive/2007/12/04/37331.html</guid><wfw:comment>http://www.cnitblog.com/donne/comments/37331.html</wfw:comment><comments>http://www.cnitblog.com/donne/archive/2007/12/04/37331.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/donne/comments/commentRss/37331.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/donne/services/trackbacks/37331.html</trackback:ping><description><![CDATA[<p><span>Lucene是一个高性能的java全文检索工具包，它使用的是倒排文件索引结构。该结构及相应的生成算法如下： <br><br>0）设有两篇文章1和2 <br>文章1的内容为：Tom lives in Guangzhou,I live in Guangzhou too. <br>文章2的内容为：He once lived in Shanghai. <br><br>1)由于lucene是基于关键词索引和查询的，首先我们要取得这两篇文章的关键词，通常我们需要如下处理措施 <br>a.我们现在有的是文章内容，即一个字符串，我们先要找出字符串中的所有单词，即分词。英文单词由于用空格分隔，比较好处理。中文单词间是连在一起的需要特殊的分词处理。 <br>b.文章中的&#8221;in&#8221;, &#8220;once&#8221; &#8220;too&#8221;等词没有什么实际意义，中文中的&#8220;的&#8221;&#8220;是&#8221;等字通常也无具体含义，这些不代表概念的词可以过滤掉 <br>c.用户通常希望查&#8220;He&#8221;时能把含&#8220;he&#8221;，&#8220;HE&#8221;的文章也找出来，所以所有单词需要统一大小写。 <br>d.用户通常希望查&#8220;live&#8221;时能把含&#8220;lives&#8221;，&#8220;lived&#8221;的文章也找出来，所以需要把&#8220;lives&#8221;，&#8220;lived&#8221;还原成&#8220;live&#8221; <br>e.文章中的标点符号通常不表示某种概念，也可以过滤掉 <br>在lucene中以上措施由Analyzer类完成 <br><br>经过上面处理后 <br>文章1的所有关键词为：[tom] [live] [guangzhou] [i] [live] [guangzhou] <br>文章2的所有关键词为：[he] [live] [shanghai] <br><br>2) 有了关键词后，我们就可以建立倒排索引了。上面的对应关系是：&#8220;文章号&#8221;对&#8220;文章中所有关键词&#8221;。倒排索引把这个关系倒过来，变成：&#8220;关键词&#8221;对&#8220;拥有该关键词的所有文章号&#8221;。文章1，2经过倒排后变成 <br>关键词 文章号 <br>guangzhou 1 <br>he 2 <br>i 1 <br>live 1,2 <br>shanghai 2 <br>tom 1 <br><br>通常仅知道关键词在哪些文章中出现还不够，我们还需要知道关键词在文章中出现次数和出现的位置，通常有两种位置：a)字符位置，即记录该词是文章中第几个字符（优点是关键词亮显时定位快）；b)关键词位置，即记录该词是文章中第几个关键词（优点是节约索引空间、词组（phase）查询快），lucene中记录的就是这种位置。 <br><br>加上&#8220;出现频率&#8221;和&#8220;出现位置&#8221;信息后，我们的索引结构变为： <br>关键词 文章号[出现频率] 出现位置 <br>guangzhou 1[2] 3，6 <br>he 2[1] 1 <br>i 1[1] 4 <br>live 1[2],2[1] 2，5，2 <br>shanghai 2[1] 3 <br>tom 1[1] 1 <br><br>以live 这行为例我们说明一下该结构：live在文章1中出现了2次，文章2中出现了一次，它的出现位置为&#8220;2,5,2&#8221;这表示什么呢？我们需要结合文章号和出现频率来分析，文章1中出现了2次，那么&#8220;2,5&#8221;就表示live在文章1中出现的两个位置，文章2中出现了一次，剩下的&#8220;2&#8221;就表示live是文章2中第 2个关键字。 <br><br>以上就是lucene索引结构中最核心的部分。我们注意到关键字是按字符顺序排列的（lucene没有使用B树结构），因此lucene可以用二元搜索算法快速定位关键词。 <br><br>实现时 lucene将上面三列分别作为词典文件（Term Dictionary）、频率文件(frequencies)、位置文件 (positions)保存。其中词典文件不仅保存有每个关键词，还保留了指向频率文件和位置文件的指针，通过指针可以找到该关键字的频率信息和位置信息。 <br><br>Lucene中使用了field的概念，用于表达信息所在位置（如标题中，文章中，url中），在建索引中，该field信息也记录在词典文件中，每个关键词都有一个field信息(因为每个关键字一定属于一个或多个field)。 <br><br>为了减小索引文件的大小，Lucene对索引还使用了压缩技术。首先，对词典文件中的关键词进行了压缩，关键词压缩为&lt;前缀长度，后缀&gt;，例如：当前词为&#8220;阿拉伯语&#8221;，上一个词为&#8220;阿拉伯&#8221;，那么&#8220;阿拉伯语&#8221;压缩为&lt;3，语&gt;。其次大量用到的是对数字的压缩，数字只保存与上一个值的差值（这样可以减小数字的长度，进而减少保存该数字需要的字节数）。例如当前文章号是16389（不压缩要用3个字节保存），上一文章号是16382，压缩后保存7（只用一个字节）。 <br><br>下面我们可以通过对该索引的查询来解释一下为什么要建立索引。 <br>假设要查询单词 &#8220;live&#8221;，lucene先对词典二元查找、找到该词，通过指向频率文件的指针读出所有文章号，然后返回结果。词典通常非常小，因而，整个过程的时间是毫秒级的。 <br>而用普通的顺序匹配算法，不建索引，而是对所有文章的内容进行字符串匹配，这个过程将会相当缓慢，当文章数目很大时，时间往往是无法忍受的。 </span></p>
<p>&nbsp;</p>
<img src ="http://www.cnitblog.com/donne/aggbug/37331.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/donne/" target="_blank">Don Li</a> 2007-12-04 23:13 <a href="http://www.cnitblog.com/donne/archive/2007/12/04/37331.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>百度、谷歌搜索引擎原理及新网站应对</title><link>http://www.cnitblog.com/donne/archive/2007/12/03/37276.html</link><dc:creator>Don Li</dc:creator><author>Don Li</author><pubDate>Mon, 03 Dec 2007 08:34:00 GMT</pubDate><guid>http://www.cnitblog.com/donne/archive/2007/12/03/37276.html</guid><wfw:comment>http://www.cnitblog.com/donne/comments/37276.html</wfw:comment><comments>http://www.cnitblog.com/donne/archive/2007/12/03/37276.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/donne/comments/commentRss/37276.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/donne/services/trackbacks/37276.html</trackback:ping><description><![CDATA[<span>
<p>第一节 搜索引擎原理</p>
<p>1、基本概念</p>
<p>&nbsp;&nbsp;&nbsp; 来源于中文wiki百科的解释：（网络）搜索引擎指自动从互联网搜集信息，经过一定整理以后，提供给用户进行查询的系统。<br>&nbsp;&nbsp;&nbsp; 来源于英文wiki百科的解释：Web search engines provide an interface to search for information on the World Wide Web.Information may consist of web pages, images and other types of files.（网络搜索引擎为用户提供接口查找互联网上的信息内容，这些信息内容包括网页、图片以及其他类型的文档）</p>
<p>2、分类</p>
<p>&nbsp;&nbsp;&nbsp; 按照工作原理的不同，可以把它们分为两个基本类别：全文搜索引擎（FullText Search Engine）和分类目录Directory）。</p>
<p>&nbsp;&nbsp;&nbsp; 分类目录则是通过人工的方式收集整理网站资料形成数据库的，比如雅虎中国以及国内的搜狐、新浪、网易分类目录。另外，在网上的一些导航站点，也可以归属为原始的分类目录，比如&#8220;网址之家&#8221;（http://www.hao123.com/）。</p>
<p>&nbsp;&nbsp;&nbsp; 全文搜索引擎通过自动的方式分析网页的超链接，依靠超链接和HTML代码分析获取网页信息内容，并按事先设计好的规则分析整理形成索引，供用户查询。</p>
<p>&nbsp;&nbsp;&nbsp; 两者的区分可用一句话概括：分类目录是人工方式建立网站的索引，全文搜索是自动方式建立网页的索引。（有些人经常把搜索引擎和数据库检索相比较，其实是错误的）。</p>
<p>3、全文搜索的工作原理</p>
<p>&nbsp;&nbsp;&nbsp; 全文搜索引擎一般信息采集、索引、搜索三个部分组成，详细的可由搜索器、分析器、索引器、检索器和用户接口等5个部分组成</p>
<p>&nbsp;&nbsp;&nbsp; （1）信息采集（Web crawling）：信息采集的工作由搜索器和分析器共同完成，搜索引擎利用称为网络爬虫（crawlers）、网络蜘蛛（spider）或者叫做网络机器人（robots）的自动搜索机器人程序来查询网页上的超链接。</p>
<p>&nbsp;&nbsp;&nbsp; 进一步解释一下："机器人"实际上是一些基于Web的程序，通过请求Web站点上的HTML网页来对采集该HTML网页，它遍历指定范围内的整个Web空间，不断从一个网页转到另一个网页，从一个站点移动到另一个站点，将采集到的网页添加到网页数据库中。"机器人"每遇到一个新的网页，都要搜索它内部的所有链接，所以从理论上讲，如果为"机器人"建立一个适当的初始网页集，从这个初始网页集出发，遍历所有的链接，"机器人"将能够采集到整个Web空间的网页。</p>
<p>&nbsp;&nbsp;&nbsp; 网上后很多开源的爬虫程序，可以到一些开源<a href="http://bbs.ttwv.com/" target=_blank><u><font color=#0000ff>社区</font></u></a>中查找。</p>
<p>&nbsp;&nbsp;&nbsp; 关键点1：核心在于html分析，因此严谨的、结构化的、可读性强、错误少的html代码，更容易被采集机器人所分析和采集。例如，某个页面存在&lt; body这样的标签或者没有&lt;/body&gt;&lt;/html&gt;这样的结尾，在网页显示是没有问题的，但是很有可能会被采集拒绝收录，在例如类似../../***.htm这样的超链接，也有可能造成蜘蛛无法识别。这也是需要推广web标准的原因之一，按照web标准制作的网页更容易被搜索引擎检索和收录。</p>
<p>&nbsp;&nbsp;&nbsp; 关键点2：搜索机器人有专门的搜索链接库，在搜索相同超链接时，会自动比对新旧网页的内容和大小，如果一致，则不采集。因此有人担心修改后的网页是否能被收录，这是多余的。</p>
<p>&nbsp;&nbsp;&nbsp; （2）索引（Indexing）：搜索引擎整理信息的过程称为&#8220;建立索引&#8221;。搜索引擎不仅要保存搜集起来的信息，还要将它们按照一定的规则进行编排。索引可以采用通用的大型数据库，如ORACLE、Sybase等，也可以自己定义文件格式进行存放。索引是搜索中较为复杂的部分，涉及到网页结构分析、分词、排序等技术，好的索引能极大的提高检索速度。</p>
<p>&nbsp;&nbsp;&nbsp; 关键点1：虽然现在的搜索引擎都支持增量的索引，但是索引创建依然需要较长的时间，搜索引擎都会定期更新索引，因此即便爬虫来过，到我们能在页面上搜索到，会有一定的时间间隔。</p>
<p>&nbsp;&nbsp;&nbsp; 关键点2：索引是区别好坏搜索的重要标志。</p>
<p>&nbsp;&nbsp;&nbsp; （3）检索（Searching）：用户向搜索引擎发出查询，搜索引擎接受查询并向用户返回资料。有的系统在返回结果之前对网页的相关度进行了计算和评估，并根据相关度进行排序，将相关度大的放在前面，相关度小的放在后面；也有的系统在用户查询之前已经计算了各个网页的网页等级（Page Rank 后文会介绍），返回查询结果时将网页等级大的放在前面，网页等级小的放在后面。</p>
<p>&nbsp;&nbsp;&nbsp; 关键点1：不同搜索引擎有不同的排序规则，因此在不同的搜索引擎中搜索相同关键词，排序是不同的。</p>
<p><br>第二节 百度搜索引擎工作方式</p>
<p>&nbsp;&nbsp;&nbsp; 我所知道的百度搜索：由于工作的关系，小生有幸一直在使用百度的百事通企业搜索引擎（该部门现已被裁员，主要是百度的战略开始向谷歌靠拢，不再单独销售搜索引擎，转向搜索服务），据百度的销售人员称，百事通的搜索核心和大搜索的相同，只有可能版本稍低，因此我有理由相信搜索的工作方式大同小异。下面是一些简单介绍和注意点：</p>
<p>&nbsp;&nbsp;&nbsp; 1、关于网站搜索的更新频率</p>
<p>&nbsp;&nbsp;&nbsp; 百度搜索可以设定网站的更新频率和时间，一般对于大网站更新频度很快，而且会专门开设独立的爬虫进行跟踪，不过百度是比较勤奋的，中小网站一般也会每天更新。因此，如果你希望自己的网站更新得更快，最好是在大型的分类目录（例如yahoo sina 网易）中有你的链接，或者在百度自己的相关网站中，有你网站的超链接，在或者你的网站就在一些大型网站里面，例如大型网站的blog。</p>
<p>&nbsp;&nbsp;&nbsp; 2、关于采集的深度</p>
<p>&nbsp;&nbsp;&nbsp; 百度搜索可以定义采集的深度，就是说不见得百度会检索你网站的全部内容，有可能只索引你的网站的首页的内容，尤其对小型网站来说。</p>
<p>&nbsp;&nbsp;&nbsp; 3、关于对时常不通网站的采集</p>
<p>&nbsp;&nbsp;&nbsp; 百度对于网站的通断是有专门的判断的，如果一旦发现某个网站不通，尤其是一些中小网站，百度的自动停止往这些网站派出爬虫，所以选择好的服务器，保持网站24小时畅通非常重要。</p>
<p>&nbsp;&nbsp;&nbsp; 4、关于更换IP的网站</p>
<p>&nbsp;&nbsp;&nbsp; 百度搜索能够基于域名或者ip地址，如果是域名，会自动解析为对应的ip地址，因此就会出现2个问题，第一就是如果你的网站和别人使用相同的IP地址，如果别人的网站被百度惩罚了，你的网站会受到牵连，第二就是如果你更换了ip地址，百度会发现你的域名和先前的ip地址没有对应，也会拒绝往你的网站派出爬虫。因此建议，不要随意更换ip地址，如果有可能尽量独享ip，保持网站的稳定很重要。</p>
<p>&nbsp;&nbsp;&nbsp; 5、关于静态和动态网站的采集</p>
<p>&nbsp;&nbsp;&nbsp; 很多人担心是不是类似asp?id=之类的页面很难被收集，html这样的页面容易被收集，事实上情况并没有想的这么糟，现在的搜索引擎大部分都支持动态网站的采集和检索，包括需要登陆的网站都可以检索到，因此大可不必担心自己的动态网站搜索引擎无法识别，百度搜索中对于动态的支持可以自定义。但是，如果有可能，还是尽量生成静态页面。同时，对于大部分搜索引擎，依然对脚本跳转（JS）、框架（frame）、</p>
<p>Flash超链接，动态页面中含有非法字符的页面无可奈何。</p>
<p>&nbsp;&nbsp;&nbsp; 6、关于索引的消失</p>
<p>&nbsp;&nbsp;&nbsp; 前面讲过，搜索的索引需要创建，一般好的搜索，索引都是文本文件，而不是数据库，因此索引中需要删除一条记录，并不是一件方便的事情。例如百度，需要使用专门的工具，人工删除某条索引记录。据百度员工称，百度专门有一群人负责这件事情——接到投诉，删除记录，手工。当然还能直接删除某个规则下的所有索引，也就是可以删除某个网站下的所有索引。还有一个机制（未经验证），就是对于过期的网页和作弊的网页（主要是网页标题、关键词和内容不匹配），在重建索引的过程中也会被删除。</p>
<p>&nbsp;&nbsp;&nbsp; 7、关于去重</p>
<p>&nbsp;&nbsp;&nbsp; 百度搜索的去重不如谷歌的理想，主要还是判别文章的标题和来源地址，只要不相同，就不会自动去重，因此不必担心采集的内容雷同而很快被搜索惩罚，谷歌的有所不同，标题相同的被同时收录的不多。</p>
<p>&nbsp;&nbsp;&nbsp; 补充一句，不要把搜索引擎想得这么智能，基本上都是按照一定的规则和公式，想不被搜索引擎惩罚，避开这些规则即可。</p>
<p><br>第三节 谷歌搜索排名技术</p>
<p>&nbsp;&nbsp;&nbsp; 对于搜索来说，谷歌强于百度，主要的原因就是谷歌更加公正，而百度有很多人为的因素（这也符合我国的国情），google之所以公正，源于他的排名技术Page Rank。</p>
<p>&nbsp;&nbsp;&nbsp; 很多人知道Page Rank，是网站的质量等级，越小表示网站越优秀。其实Page Rank是依靠一个专门的公式计算出来的，当我们在google搜索关键词的时候，页面等级小的网页排序会越靠前，这个公式并没有人工干预，因此公正。</p>
<p>&nbsp;&nbsp;&nbsp; Page Rank的最初想法来自于论文档案的管理，我们知道每篇论文结尾都有参考文献，假如某篇文章被不同论文引用了多次，就可以认为这篇文章是篇优秀的文章。</p>
<p>&nbsp;&nbsp;&nbsp; 同理，简单的说，PageRank 能够对网页的重要性做出客观的评价。PageRank 并不计算直接链接的数量，而是将从网页 A 指向网页 B 的链接解释为由网页 A 对网页 B 所投的一票。这样，PageRank 会根据网页 B 所收到的投票数量来评估该页的重要性。此外，PageRank 还会评估每个投票网页的重要性，因为某些网页的投票被认为具有较高的价值，这样，它所链接的网页就能获得较高的价值。</p>
<p>&nbsp;&nbsp;&nbsp; Page Rank的公式这里省略，说说影响Page Rank的主要因素</p>
<p>&nbsp;&nbsp;&nbsp; 1、指向你的网站的超链接数量（你的网站被别人引用），这个数值越大，表示你的网站越重要，通俗的说，就是其它网站是否友情链接，或者推荐链接到你的网站；</p>
<p>&nbsp;&nbsp;&nbsp; 2、超链接你的网站的重要程度，意思就是一个质量好的网站有你的网站的超链接，说明你的网站也很优秀。</p>
<p>&nbsp;&nbsp;&nbsp; 3、网页特定性因素：包括网页的内容、标题及URL等，也就是网页的关键词及位置。</p>
<p><br>第四节 新网站如何应对搜索</p>
<p>&nbsp;&nbsp;&nbsp; 以下内容是对上面分析的总结：</p>
<p>1、搜索引擎为什么不收录你的网站，存在以下可能（不绝对，根据各自情况不同）</p>
<p>&nbsp;&nbsp;&nbsp; （1）没有任何指向链接的孤岛网页，没有被收录的网站指向你的超链接，搜索引擎就无法发现你；<br>&nbsp;&nbsp;&nbsp; （2）网站中的网页性质及文件类型（如flash、JS跳转、某些动态网页、frame等）搜索引擎无法识别；<br>&nbsp;&nbsp;&nbsp; （3）你的网站所在服务器曾被搜索引擎惩罚，而不收录相同IP的内容；<br>&nbsp;&nbsp;&nbsp; （4）近期更换过服务器的IP地址，搜索引擎需要一定时间重新采集；<br>&nbsp;&nbsp;&nbsp; （5）服务器不稳定、频繁宕机，或者经不起爬虫采集的压力；<br>&nbsp;&nbsp;&nbsp; （6）网页代码劣质，搜索无法正确分析页面内容，请至少<a href="http://www.ttwv.com/" target=_blank><u><font color=#0000ff>学习</font></u></a>一下HTML的基本语法，建议使用XHTML；<br>&nbsp;&nbsp;&nbsp; （7）网站用robots（robots.txt）协议拒绝搜索引擎抓取的网页；<br>&nbsp;&nbsp;&nbsp; （8）使用关键词作弊的网页，网页的关键词和内容严重不匹配，或者某些关键词密度太大；<br>&nbsp;&nbsp;&nbsp; （9）非法内容的网页；<br>&nbsp;&nbsp;&nbsp; （10）相同网站内存在大量相同标题的网页，或者网页的标题没有实际含义；</p>
<p>2、新站如何做才正确（仅供参考）</p>
<p>&nbsp;&nbsp;&nbsp; （1）和优秀的网站交换链接；<br>&nbsp;&nbsp;&nbsp; （2）广泛登录各种大网站的网站目录列表；<br>&nbsp;&nbsp;&nbsp; （3）多去质量好的论坛发言，发言要有质量，最好不要回复，发言中留下自己网站地址；<br>&nbsp;&nbsp;&nbsp; （4）申请大网站的博客（新浪、网易、CSDN），并在博客中推广自己的网站；<br>&nbsp;&nbsp;&nbsp; （5）使用好的建站程序，最好能生成静态页面和自动生成关键词；<br>&nbsp;&nbsp;&nbsp; （6）重视每个网页的标题，以及&lt;head&gt;区域，尽量把符合的关键词放在这些容易被搜索索引的位置，重视文章的开头部分，尽可能在文章的开始部分使用类似摘要的功能（可以学学网易的文章样式）。</p>
<p>&nbsp;&nbsp;&nbsp; 例如&#8220;基于开源jabber(XMPP)架设内部即时通讯服务的解决方案&#8221;；</p>
<p>&nbsp;&nbsp;&nbsp; 标题部分：&lt;title&gt;基于开源jabber(XMPP)架设内部即时通讯服务的解决方案 - 肥龙龙（expendable）的专栏 - CSDNBlog&lt;/title&gt;<br>&nbsp;&nbsp;&nbsp; 关键词部分：&lt;meta name="keywords" cCOLOR: #c00000"&gt;安装,"&gt;<br>&nbsp;&nbsp;&nbsp; 文章描述部分：&lt;meta name="description" cCOLOR: #c00000"&gt;是著名的即时通讯服务服务器，它是一个自由开源软件，能让用户自己架即时通讯服务器，可以在Internet上应用，也可以在局域网中应用。</p>
<p>&nbsp;&nbsp;&nbsp; XMPP（可扩展消息处理现场协议）是基于可扩展标记语言（XML）的协议，它用于即时消息（IM）以及在线现场探测。它在促进服务器之</p>
<p>间的准即时操作。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息，即使其操作系统和浏览器不同。XMPP的技术来自</p>
<p>于Jabber，其实它是 Jabber的核心协定，所以XMPP有时被误称为Jabber协议。Jabber是一个基于XMPP协议的IM应用，除Jabber之外，XMPP还支</p>
<p>持很多应用。</p>
<p>&nbsp;&nbsp;&nbsp; 下面就是如何架设内部即时通讯服务的步骤：</p>
<p>&nbsp;&nbsp;&nbsp; （7）按照web标准的要求，规范自己网页的html代码，让自己的网页通过w3c代码和css标准检测；<br>&nbsp;&nbsp;&nbsp; （8）不要想着作弊，做好网站内容最关键。</p>
</span>
<img src ="http://www.cnitblog.com/donne/aggbug/37276.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/donne/" target="_blank">Don Li</a> 2007-12-03 16:34 <a href="http://www.cnitblog.com/donne/archive/2007/12/03/37276.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>什么是垂直搜索引擎？</title><link>http://www.cnitblog.com/donne/archive/2007/12/03/37275.html</link><dc:creator>Don Li</dc:creator><author>Don Li</author><pubDate>Mon, 03 Dec 2007 08:33:00 GMT</pubDate><guid>http://www.cnitblog.com/donne/archive/2007/12/03/37275.html</guid><wfw:comment>http://www.cnitblog.com/donne/comments/37275.html</wfw:comment><comments>http://www.cnitblog.com/donne/archive/2007/12/03/37275.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/donne/comments/commentRss/37275.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/donne/services/trackbacks/37275.html</trackback:ping><description><![CDATA[<p>垂直搜索是针对某一个行业的专业搜索引擎，是搜索引擎的细分和延伸，是对网页库中的某类专门的信息进行一次整合，定向分字段抽取出需要的数据进行处理后再以某种形式返回给用户。</p>
<p>垂直搜索引擎和普通的网页搜索引擎的最大区别是对网页信息进行了结构化信息抽取，也就是将网页的非结构化数据抽取成特定的结构化信息数据，好比网页搜索是以网页为最小单位，基于视觉的网页块分析是以网页块为最小单位，而垂直搜索是以结构化数据为最小单位。然后将这些数据存储到数据库，进行进一步的加工处理，如：去重、分类等，最后分词、索引再以搜索的方式满足用户的需求。</p>
<p>　　整个过程中，数据由非结构化数据抽取成结构化数据，经过深度加工处理后以非结构化的方式和结构化的方式返回给用户。</p>
<p>&nbsp;&nbsp;&nbsp; 垂直搜索引擎的应用方向很多，比如企业库搜索、供求信息搜索引擎、购物搜索、房产搜索、人才搜索、地图搜索、mp3搜索、图片搜索&#8230;&#8230;几乎各行各业各类信息都可以进一步细化成各类的垂直搜索引擎。</p>
<p>&nbsp;&nbsp;&nbsp; 举个例子来说明会更容易理解，比如购物搜索引擎，整体流程大致如下：抓取网页后，对网页商品信息进行抽取，抽取出商品名称、价格、简介&#8230;&#8230;甚至可以进一步将笔记本简介细分成&#8220;品牌、型号、CPU、内存、硬盘、显示屏、&#8230;&#8230;&#8221;然后对信息进行清洗、去重、分类、分析比较、数据挖掘，最后通过分词索引提供用户搜索、通过分析挖掘提供市场行情报告。</p>
<p>&nbsp;&nbsp; 垂直搜索引擎大体上需要以下技术</p>
<p>&nbsp;&nbsp;&nbsp; １．Spider</p>
<p>&nbsp;&nbsp;&nbsp; ２．网页结构化信息抽取技术或元数据采集技术</p>
<p>&nbsp;&nbsp;&nbsp; ３．分词、索引</p>
<p>&nbsp;&nbsp;&nbsp; ４．其他信息处理技术</p>
<p>&nbsp;&nbsp; 垂直搜索引擎的技术评估应从以下几点来判断</p>
<p>&nbsp;&nbsp;&nbsp; １．全面性</p>
<p>&nbsp;&nbsp;&nbsp; ２．更新性</p>
<p>&nbsp;&nbsp;&nbsp; ３．准确性</p>
<p>&nbsp;&nbsp;&nbsp; ４．功能性</p>
<p>&nbsp; <br>垂直搜索的进入门槛很低，但是竞争的门槛很高。没有专注的精神和精湛的技术是不行的。行业门户网站具备行业优势但他们又是没有技术优势的，绝对不要想像着招几个人就可以搞定垂直搜索的全部技术，作为一个需要持续改进可运营的产品而不是一个项目来说对技术的把握控制程度又是垂直搜索成功的重要因素之一。</p>
<p><em>转载的其他相关文章：</em></p>
<p><strong>1、垂直搜索引擎不是什么？</strong> </p>
<p>垂直搜索不只是类google的行业通用搜索。以房产行业为例，如果我们按照google抓取网页的方式，来建造一个房产行业google的做法，是行不通的。技术壁垒不用解释，就算我们借助nutch,lucene等搜索技术来做，我们也无法提供差异化的服务,而没有差异化的产品在互联网赢家通吃的规则下是无法生存的，就是不要简单地模仿，而要想办法形成互补。 </p>
<p>垂直搜索和目前的google,baidu等通用搜索从定位，内容，用户，市场策略等都是不同的。所以垂直搜索不只是简单的行业google。 </p>
<p>用户使用google,baidu等通用搜索引擎的方式是通过关键字的方式实现的，是语义上的搜索，返回的结果倾向于知识成果，比如文章，论文，新闻等；垂直搜索也是提供关键字来进行搜索的，但被放到了一个行业知识的上下文中，返回的结果更倾向于信息，消息，条目等。对买房的人讲，他希望找的房子供求信息和文章，新闻等不同。这个特性是他们各自的的技术特点决定的。打个比方，如果google搜索引擎是一个正金字塔型，那么垂直搜索引擎就是个倒金字塔型，两者是互补的。 </p>
<p><strong>2、垂直搜索是什么？</strong> </p>
<p>我认为：垂直搜索的本质是对垂直门户信息提供方式的一次简化性的整合。 </p>
<p>搜索领域有句明言：就是用户无法描述道他要找什么，除非让他看到想找的东西，这个过程有点像找对象，碰运气是用户搜索行为的最大的特征。而垂直搜索引擎就是提高为用户提供更好的运气。 </p>
<p>垂直搜索是服务于某项功能的，比如：用户搜索租房，买房信息就是一种垂直搜索。对信息的再加工处理是非常关键的，不管是结构化的数据，还是非结构化的数据。 </p>
<p><strong>3、垂直搜索的内容来源：</strong> </p>
<p>A门户网站自身的资源 </p>
<p>B以开放接口方式让行业用户提供的资源 </p>
<p>C普通用户发布的资源 </p>
<p>D抓取行业用户的资源 </p>
<p>微软亚洲研究院负责搜索的一名技术专家说：75%的内容通用搜索引擎搜索不出来。这里面包含2层含义： </p>
<p>（1）网站结构不合理，网页对搜索引擎不友好； </p>
<p>（2）由于信息在互联网是海量的，非结构化的信息需要经过结构化的梳理后才能更好的展现。 如果梳理者能提供搜索，那样会更好。而垂直门户网站就是行业信息最好的梳理者。 <br>垂直搜索引擎提供的主要内容不应该局限于普通的网页索引，而且包括商业信息的加工，结构化的信息。 </p>
<p><strong>4、进入垂直搜索的门槛在那里？</strong> </p>
<p>在互联网上说门槛，就是比资源。垂直搜索也是这样，能否提供全面权威的行业信息，能否拥有行业资源是垂直搜索引擎发展的门槛。换句化说，垂直门户是垂直搜索血统最近的父亲。作为房产行业的搜房网就是一个垂直门户，在房产领域没有谁比我们更清楚什么是垂直搜索了。 </p>
<p>垂直搜索的难点不是技术，而是用户参与门户网站行为的创新和垂直门户网站对产业上下游信息资源的整合。 </p>
<p><strong>5、垂直搜索的特点：</strong> </p>
<p>（1）、搜索是一个产业商业联盟的平台，一个集成产业链的上下游公司的搜索门户。 </p>
<p>（2）、垂直搜索的表现方式和google,baidu的表现方式不同，结构化的搜索和非结构化搜索并用。 </p>
<p>（3）、从广告模式上 提供了除 google adsense 和 百度竞价排名广告 之外的另一种可能。</p>
<p><strong>6、垂直搜索引擎的三个特点：</strong></p>
<p><br>（1）、垂直搜索引擎抓取的数据来源于垂直搜索引擎关注的行业站点：</p>
<p>比如：找工作的搜索引擎 <a href="http://www.deepdo.com/"><u><font color=#0000ff>www.deepdo.com</font></u></a> 的数据来源于：<a href="http://www.51job.com/"><u><font color=#0000ff>www.51job.com</font></u></a> , <a href="http://www.zhaoping.com/"><u><font color=#0000ff>www.zhaoping.com</font></u></a> <br>, <a href="http://www.chinahr.com/"><u><font color=#0000ff>www.chinahr.com</font></u></a> 等等；</p>
<p>股票搜索引擎 <a href="http://www.macd.cn/"><u><font color=#0000ff>www.macd.cn</font></u></a> 的数据来源于： <a href="http://www.jrj.com.cn/"><u><font color=#0000ff>www.jrj.com.cn</font></u></a> , <a href="http://www.gutx.com/"><u><font color=#0000ff>www.gutx.com</font></u></a> <br>等股票站点；</p>
<p>（2）、垂直搜索引擎抓取的数据倾向于结构化数据和元数据：</p>
<p>比如：我们找工作关注的：</p>
<p>职位信息： 软件工程师；</p>
<p>公司名称，行业名称：软件公司，外包行业等；</p>
<p>地点：北京，海淀；</p>
<p>（3）、垂直搜索引擎的搜索行为是基于结构化数据和元数据的结构化搜索：</p>
<p>比如： 找：海淀 软件工程师 的工作等。</p>
<p><strong>7、垂直搜索引擎站点的8条准则：</strong></p>
<p>1、选择一个好的垂直搜索方向。俗话说男怕选错行，这一点对于搜索引擎来说也是一样的，除了选择的这个行业有垂直搜索的大量需求外，这个行业的数据属性最好不要和 </p>
<p><br>Yahoo,Google等通用搜索的的抓取方向重叠。</p>
<p>目前热门的垂直搜索行业有：购物，旅游，汽车，工作，房产，交友等行业。搜索引擎对动态url数据不敏感也是众所周知的，这些可以作为垂直搜索引擎的切入点；</p>
<p>2、评价所选垂直搜索行业的网站、垂直搜索内容、行业构成等情况：</p>
<p>我们都知道垂直搜索引擎并不提供内容来源，它的数据依赖爬虫搜集，并做了深度加工而来的。因此考虑垂直搜索引擎的所处的大环境和定位至关重要。</p>
<p>3、深入分析垂直搜索引擎的索引数据特点：</p>
<p>垂直搜索引擎的索引数据过于结构化，那么进入的门槛比较低，行业竞争会形成一窝蜂的局面；如果搜索数据特点是非结构化的，抓取，分析这样的数据很困难，进入壁垒太高，很可能出师未杰身先死。</p>
<p>4、垂直搜索引擎的索引数据倾向于结构化数据和元数据，这个特点是区别于yahoo,google等通用搜索引擎的，这是垂直搜索引擎的立足点。而垂直搜索引擎是根植于某一个行业 <br>，因此行业知识，行业专家这些也是通用搜索引擎不具备的。也就是说进入垂直搜索是有门槛的。</p>
<p>5、垂直搜索引擎的搜索结果要覆盖整个行业，搜索相关性要高于通用搜索引擎，贴近用户搜索意图，搜索结果要及时。</p>
<p>6、垂直搜索引擎的web 2.0 需求：</p>
<p>垂直搜索引擎的搜索数据由于带有结构化的天性，相对于通用搜索引擎的全文索引而言，更显的少而精。因此，设计的时候要提供收集用户数据的接口，同时提供tag,积分等机制，使搜索结果更加&#8220;垂直&#8221;。</p>
<p>7、垂直搜索引擎的目标是帮助用户解决问题，而不只是向通用搜索引擎一样发现信息：</p>
<p>这一点是垂直搜索引擎的终极目标。在做垂直搜索引擎的时候你需要考虑：什么问题是这个行业内的特殊性问题，什么问题是一般性问题。keso多次提到google的目标是让用户尽快离开 google，而垂直搜索引擎应该粘住用户。一般来说，使用垂直搜索引擎的用户都是和用户的利益需求密切相关的。所谓利益需求是我自己独创的，大意是和用户工作密切相关，生活中必不可少的需求，而求有持续性。比如：学生找论文，业主找装修信息等等这样的需求。因此粘住用户，让用户有反馈的途径是一个关键部分。</p>
<p>8、垂直搜索引擎的社区化特征：</p>
<p>这一条和第9条是相关的。</p>
<p>俗话说物以类聚，人以群分，垂直搜索引擎定位于一个行业，服务于一群特定需求的人群，这个特点决定了垂直搜索的社区化行为。人们利用垂直搜索引擎解决问题，分享回馈。现在做网站都讲求社区化，所以垂直搜索引擎本质上还是：对垂直门户信息提供方式的一次简化性的整合。</p>
<p><strong>搜索市场细分 Google、百度面临挑战</strong> </p>
<p>百度上市后，搜索市场一下子热了起来。越来越多的企业围绕着搜索市场作起了文章。而且，在搜索大战的同时，一些企业也抛出了一些惊人言论。近日，记者从专业做人脉交际的联络家（<a href="http://www.linkist.com/"><u><font color=#0000ff>www.linkist.com</font></u></a>）技术总监冉征处了解到，联络家正在加紧研发人脉相关领域的专业垂直</p>
<p>搜索引擎系统，比如工作招聘信息搜索引擎等，预计将在2005年底推出，联络家之所以涉足专业垂直搜索引擎领域，是看到未来垂直专业搜索引擎市场的巨大商机，他认为未来搜索市场将进一步细分，象Google、百度等主张大而全的全球式搜索引擎将会面临垂直专业搜索引擎更大的竞争与挑战，他们的市场分额将会被逐渐瓜分，专业的行业性垂直搜索将受到网民的青睐。</p>
<p>　　那么缘何能得出如此结论呢？冉先生解释，CNNIC第十四次互联网调查显示，搜索以71.9％的绝对优势成为用户从互联网上获得信息的主要方式。几乎在全球所有的调查中，搜索引擎都是互联网上使用程度仅次于电子邮箱的服务，搜索引擎服务能成为最受欢迎的服务是因为他解决了用户在浩瀚的互联网海量快速定位信息屏颈问题，在海量的网页里找信息按照传统方式需要用户一个网站一个网站一级目录一级目录下找，要耗费大量的精力和时间，几乎是不可能实现的任务。但互联网的信息量呈爆炸趋势增长，几年前全球式搜索引擎收录的网页量只有几千万页，而现在已经达到几十亿页，数量增加带来的是搜索服务的品质下降，查询的结果集就是海量的，经常是几十万笔的资料，结果里存在大量的重复信息和垃圾信息，用户越来越难迅速的找到符合的信息，现在经常使用搜索引擎可以感觉到很难在短时间内准确的筛选出需要的内容，而垂直搜索引擎针对专业特定的领域或行业的内容做了专业和深入的分析挖掘，精细分类，过滤筛选等，信息定位更精准，因此在此垂直领域或行业提供的搜索服务势必更好更强，更为用户所欢迎。</p>
<p>比如，对于一个网民来说如果有对特定的领域或行业的信息需求的时候，如果一个是专业的垂直搜索能做到精确锁定内容，但内容量偏小，而另一个是能检索出大量内容，但搜索到的内容一大部分都是&#8220;垃圾&#8221;并且很难找到符合的信息，这样的话，你会选择哪个呢，就如用户想购买一个商品，他是会去专门的比价购物搜索引擎上找还是会去Google上找，如果你想找一份工作，是会去专门的工作搜索引擎上找还是会去百度上找？答案很明显，更多的用户会舍弃后者，即使前者品牌小名声小，但结果往往是最令网民看重的。</p>
<p>　　冉先生还象记者举了个简单的例子，联络家LINKIST一直做人脉交际圈的拓展，也就是现在炙手可热的SNS网站，SNS网站的目的就是要建立一个庞大的人脉圈，参与其中的人都能通过站内人脉的搜索引擎找到自己想找的人，可以找工作、搜罗人才、寻找合作商机。联络家LINKIST短短几个月的时间已经聚敛起了近7万多位高级商务人士。有了一定的用户基础做铺垫，联络家LINKIST目前大力开发人脉专业领域的垂直搜索引擎，如工作搜索引擎的人脉搜索引擎，而这比以往的&#8220;贴简历、翻招聘信息&#8221;的机械作法要灵活的多。</p>
<p>　　而且，能做出这样的预测显然并不是空穴来风。据记者了解，现在搜索市场大量的的垂直专业搜索引擎的诞生如雨后春笋般，如比价购物搜索引擎，工作搜索引擎，博客搜索引擎等等，占了百度几乎一半以上的流量的MP3搜索，其实也可以说是专业的搜索MP3的垂直搜索引擎，许多垂直门户也纷纷推出了自己的搜索引擎系统。</p>
<p>　　记者获悉，之前刚从</p>
<p>网易内容总监职位上辞职后创业的李学凌也作起了针对博客内容的搜索引擎，这也表露出，垂直搜索引擎的市场正在孕育过程中，既是机会又存在着挑战，其赢利模式也已经在Google、百度等身上得到了验证。而且，很多风险投资（VC）对搜索的概念已经认可并下了赌注。</p>
<p>　　那么，象Google、百度能会不会通过&#8220;补课&#8221;挤掉这部分专用搜索市场呢？冉先生对记者表示，Google、百度注定了走的是大而全的粗犷路线，而专用的垂直搜索引擎则不同，需要对做内容的深度挖掘，做精细的分类，构建专业领域的知识库体系等等，而这些都是Google、百度等无法做到的，他们根本就没有精力做这些，也不可能针对每个行业领域都能做透，&#8220;术业有专攻&#8221;就是这个道理。</p>
<p>　　就象门户网站与专业垂直的行业性网站可以共存一样，网民也有不同的胃口，有的仅仅是简单模糊的信息就已经满足了，而一些寻找精确内容的网民则更青睐于专业引擎，比如你打算换一份工作，以前去人才招聘网站贴简历往往都尿杳无音信，现在，就可以去联络家LINKIST试试，还能跟同行的朋友交换下最新的行业信息，探讨下行业发展趋势。而且，以后联络家LINKIST推出人脉引擎后，只需轻轻点击便能收获颇丰。<br>　　有专家预测，未来，专业的垂直搜索将掀起一轮热潮，而且，垂直搜索引擎不会是一个简单的文本框、一个按纽就走遍天下了，更需要专业的信息辅助和配套的增值内容的支持，也就是对相关内容的二次&#8220;加工&#8221;。而这恰恰是Google、百度类所不能提供的。相信，届时很多VC的眼球会聚焦于此，而Google、百度又将面临怎样的挑战呢？我们只能拭目以待了。 </p>
<p>要了解垂直搜索引擎，就要同大家熟知的横向搜索引擎即通用搜索引擎来做对比。目前互联网领域主要的搜索引擎服务商如yahoo、百度、google 等，为用户提供的都是横向的海量信息搜索。他们可以满足大量信息的横向搜索、提供，但很难兼顾搜索的准确度与相关度的质量。通用搜索引擎的价值在于在做大量的信息导航，对于信息需求相对集中、分类更加详细的行业客户缺乏导向。垂直搜索引擎的产生正是有效的解决了以上通用搜索引擎无法满足的市场需求。</p>
<p>垂直搜索指搜索引擎为用户提供的并不是上百甚至上千万相关网页，而是范围极为缩小、极具针对性的具体信息。换言之，搜索引擎收集的是市场空间中某一&#8220;市场利基&#8221;的数据，如工作、旅游、高端房地产等。这样的信息不但更加易于为用户所消化，而且也更有深度。</p>
<p>Google、雅虎、MSN这几大搜索引擎巨头主宰着互联网搜索市场，全球大多数网民 都是通过这几大搜索引擎查找自己所需的信息的。但在查找一些具体信息时，这几大搜索引擎的表现却并不尽如人意。有时候用户得到的是往往是和他们的查询本意 <br>风马牛不相及的结果。对拉近用户及其所需信息之间的距离的需求催生并促进了搜索行业的利基发展。垂直搜索引擎瞄准的正是搜索市场中的不同利基市场。</p>
<p>利基是Niche这一英文名词的译称，利基市场指市场中通常为大企业忽略的某些细分市场；而利基市场战略则指企业通过专业化经营来占领这些市场，从 <br>而最大限度的获取收益所采取的策略。实施利基战略的重要意义在于：进行市场利基的公司事实上已经充分了解了目标顾客群，因而能够比其他公司更好、更完善地 <br>满足消费者的需求。并且，市场利基者可以依据其所提供的附加价值收取更多的利润额。总之，市场利基者获得的是&#8220;高边际收益&#8221;，而密集市场营销者获得的只是&#8220;高总量收益&#8221;。</p>
<p>分析家认为：利基搜索市场和强大的在线广告市场之间有着密切的联系。管理者可以象Google和雅虎那样利用搜索结果页面运作广告，即在搜索结果页面上提供一定的定向文本广告。这种广告策略已被视作搜索行业的一个盈利渠道。</p>
<p>对于垂直搜索引擎来说，由于数据源得到了详细划分，使得对这些数据进行操作，并将其通过简单易用、消费方便的方式表现出来变成可能。此外，以往的两种网络广告&#8220;每千次展示成本&#8221;和&#8220;每点击付费（CPC）&#8221;这两种广告方式上存在着效率低下，广告费用风险高的问题，这也正是垂直搜索被看好的一个主要原因。垂直搜索能够提供更为集中的受众群体，从而提高搜索引擎广告的宣传能力。同时，垂直搜索也能够有效推动新的广告商机的发展――我们姑且称之为&#8220;每行动成本&#8221;。这种广告方式不限广告投放量，按照广告投放的实际效果，即按潜在客户回应行动计费。</p>
<img src ="http://www.cnitblog.com/donne/aggbug/37275.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/donne/" target="_blank">Don Li</a> 2007-12-03 16:33 <a href="http://www.cnitblog.com/donne/archive/2007/12/03/37275.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>