首页 >后端开发 >php教程 >如何做好一个垂直搜索引擎

如何做好一个垂直搜索引擎

PHP中文网
PHP中文网原创
2016-06-01 12:29:561150浏览

  本文先引用几句话:

  “确解用户之意,切返用户之需。”

  “门户网站都想着是怎样省钱,而不是怎样花钱来买技术。”

  “搜索引擎不是人人都能做的领域,进入的门槛比较高。”

  “只是优秀还不够,最好的方式是将一件事情做到极致。”(google十大真理)

  “做搜索引擎需要专注” “对于一项排到第四的业务,门户很难做到专注。”

  “用户无法描述道他要找什么,除非让他看到想找的东西。”

  “所谓楔形,其实就是个倒三角,倒三角的尖端部分代表搜索技术,中部是基于技术的产品应用平台,最上端是对整个搜索引擎用户人群文化的认识和理解,以及现代公司竞争最关键也最捉摸不定的所谓品牌。”

  “楔形”蕴涵的另一个意义是:楔子要打到墙里,尖端是否锐利很重要,但楔子的破坏性有多强,究竟能在墙面挤压出多大的空间,其中端、后端的沉稳与厚重才是关键。

  搜索引擎的技术和理念都是需要时间和经验的积累的,更是需要长期不断的完善进步的,绝对不要认为可以一蹴而就,要达到一个相对成熟领先的搜索引擎从开始到领先的周期一般需要是四年。着急不得。原因是因为搜索引擎太复杂,而且“用户无法描述他要找什么,除非让他看到想找的东西。” 一切都需要摸索,尝试,问题需要一个一个解决,用户的需要得一点点的挖掘。

  搜索引擎是一个产品,给用户提供服务的产品,需要长期的不断的改进升级调整才能持续不断的提用户体验,需要满足用户不断增长并且变化的需求、需要不断适应网络的变化。这是因为网络环境是不断变化的、网民的需求也是不断变化的。千万不要把搜索当成项目来做,做完了撂那让用户去用那你肯定没戏。在搜索引擎领域是讲体验的、新的引擎如果用户体验一旦整体上有领先一年以上的差距并且持续2年,那前期的领先者的优势就荡然无存,因为搜索引擎的用户转移成本相对而言是比较低的而且口碑是最佳的传播方式。如果一个搜索引擎不能持续不断的技术创新理念创新,那对于这个搜索引擎来说就等于死亡。我们一般形容搜索引擎的领先是以时间计算的。比如:中搜离百度整体差距×年,百度离google的整体差距×年,……只要你能在用户体验上保持一年的领先优势持续2年,不需要炒作,一切纷至沓来。在用户体验面前,任何的炒作都显得很渺小。

  作垂直搜索引擎,麻雀虽小,但是五脏俱全。无论理念文化、产品管理、应用、技术都和搜索引擎的楔形理论没有什么区别。所以要做好一垂直搜索必须解决这几个方面。

  楔形的尖:垂直搜索技术。

  垂直搜索技术主要分为两个层次:模板级和网页库级。模板级是针对网页进行模板设定或者自动生成模板的方式抽取数据,对网页的采集也是针对性的采集,适合规模比较小、信息源少且稳定的需求,优点是快速实施、成本低、灵活性强,缺点是后期维护成本高,信息源和信息量小。网页库级就是在信息源数量上、数据容量上检索容量上、稳定性可靠性上都是网页库搜索引擎级别的要求,和模板方式最大的区别是对具体网页不依赖,可针对任意正常的网页进信息采集信息抽取……。这就导致这种方式数据容量上和模板方式有质的区别,但是其灵活性差、成本高。当然模板方式和网页库级的方式不是对立的,这两者对于垂直搜索引擎来说是相互补充的,因为技术只是手段,目的是切反用户之需。本文谈及的技术主要是指网页库级别垂直搜索引擎技术。

  搜索引擎的确是一项对技术要求比较高的应用,几年前相关的人才也比较少。现在搜索技术人才多了,相关的技术和技术的应用得相对以前而言更加成熟,但是竞争也更加激烈了。垂直搜索大致需要以下技术:

  1. 信息采集技术

  2. 网页信息抽取技术

  3. 信息的处理技术,包括:重复识别、重复识别、聚类、比较、分析、语料分析等

  4. 语意相关性分析

  5. 分词

  6. 索引

  信息采集技术,垂直搜索引擎spider和网页库的spider相比应该是更加专业,可定制化。可定向性的采集和垂直搜索范围相关的网页忽略不相关的网页和不必要的网页,选择内容相关的以及适合做进一步处理的网页深度优先采集、对页面有选择的调整更新频率……,采集可通过人工设定网址和网页分析url方式共同进行。垂直搜索对信息的更新有着特别的要求,根据这些特点可以从以下几点考虑1.信息源的稳定性(不能让信息源网站感觉到spider的压力)2.抓取的成本问题3.对用户体验改善程度。根据以上几点制定一种比较好的策略,要做到恰到好处。策略上可以评估网站/网页更新的系数、网站/网页的重要系数、用户点击系数(或曝光系数)、网站稳定系数……,根据这些系数来确定对这些网站/网页更新的频率。再由于新信息和更新了的信息list页面前面或者首页,所以对网页进行很好的分级可以以低成本很好的解决更新问题,系数比较低的网页一月update一次,稍微高点的一周update一次、中等的几天到一天一次、高的几小时到几分钟一次。类似搜索引擎的大库、周库、日库,小时库……

  基于视觉网页块分析技术,模拟IE浏览器的显示方式,对网页进行解析。根据人类视觉原理,把网页解析处理的结果,进行分块,再根据需要,对这些块进行处理,如:采集定向、介绍抽取和一些必要的内容的抽取正文抽取……

  结构化信息抽取技术,将网页中的非结构化数据按照一定的需求抽取成结构化数据。有两种方式,简单的就是模板方式,另外就是对网页不依赖web结构化信息抽取方式,这两种方式可以互取长处,以最简单最有效的办法满足需求。垂直搜索引擎和通用搜索引擎最大的区别就是对网页信息结构化抽取后再结构化数据进行深度的处理,提供专业的搜索服务。所以web结构化信息抽取的技术水平是决定垂直搜索引擎质量的重要技术指标。其实web结构化信息抽取在百度、google早已经广泛应用了,如:MP3、图片搜索、google的本地搜索就是从网页库抽取出企业信息,添加到其地图搜索中的,google通过这种技术正在颠覆做内容的方式。同样的技术应用还在qihoo、sogou购物、shopping等各种应用中体现。

  简单的语法分析,简单的语法分析在搜索引擎中非常重要,可以通过简单的语法分析来改善数据的质量,低成本的获得某类信息,改善排序,寻找需要的内容……

  信息处理技术,信息处理包括的范围比较广,主要包括去重、聚类、分析……,这根据需要相关的技术就非常多。

  数据挖掘,找出您的信息的关联性对于垂直搜索来说非常重要,有效,可以在这些相关性上为用户提供更细致的服务。

  分词技术,面向搜索的分词技术,建立和您的行业相关的词库。注意这是面向搜索的分词,不是面向识别和准确的分词。就这个工作安排十几个人不停的维护也不会嫌多。

  索引技术,索引技术对于垂直搜索非常关键,一个网页库级的搜索引擎必须要支持分布索引、分层建库、分布检索、灵活的更新、灵活的权值调整、灵活的索引和灵活的升级扩展、高可靠性稳定性冗余性。还需要支持各种技术的扩展,如偏移量计算等。

  其它技术,略。

  垂直搜索引擎的技术评估应从以下几点来判断

  1. 全面性

  2. 更新性

  3. 准确性

  4. 功能性

  锲形的中和尾:产品应用平台和对搜索引擎文化理念的理解

  对于任何一个产品来说,产品的模式是最重要的,技术只是手段、工具、途径。用户不会关心你的技术是如何实现的、更不会关心你的技术水平是什么样的,只要用户感觉:这就是我需要的东西,很好用,而且是最好用的。那么你的产品就OK了。

  考虑一个产品的模式需要考虑的东西很多,如:用户需要什么?需求有多大?能不能完整的实现用户的需求?需要什么资源?怎么做到?竞争分析?差异化?根据自身情况能做到什么程度?怎么样保持领先优势?能否收到钱?怎么样收钱?怎么样推广?需要多少时间?如何保证在时间窗口期内有效完成进度?如何分步分期优先完成用户最需要的需求?如何建立有效的反馈机制让我可以了解用户的需求变化和挖掘用户自己也无法表达的需求?如何进一步改善?分期需要多大的投入?如何降低整体成本和前期成本?如何分期投入?投资回报比?周期?……

  1. 确解用户之意

  任何应用最难的就是了解用户的需求,甚至是用户自己都不知道的需求。

  建立完善的、快速的用户意见反馈机制和用户需求调查机制,所有人都应倾听用户的牢骚、建议。不断的分析、修改。

  2. 切返用户之需

  满足用户的需求,一切纷至沓来。不需要炒作,请把您的资源多多花费在为用户提供良好的体验上来。

  3. 不要干扰用户的意图,培养用户的使用习惯和技巧

  有一个故事是这样的:还在yahoo使用google的搜索的时候,华尔街的几个分析师来评估这两个搜索哪个好用,去掉logo。结果一致评价yahoo的检索效果好。因为yahoo是使用的google检索结果,并且对热点关键词进行了人工调整。但是一转身这些分析师回到自己的电脑边查询东西,不约而同的打开了google。

  4. 细节决定成败

  信息不是越多越好,在海量的信息时代,如果不能妥善的整理信息,那就等于没有信息。每个页面的每个字,每个像素、图片的放置都值得花费时间去琢磨。把用户最需要的放在最显眼的位置,次需要的放置到更多页面,不需要的扔掉。

  5. 将一件事情做到极致

  不仅仅要关注80%的用户的80%的需求,20%的用户的20%的需求是您成败关键所在。

  6. 专注

  这么多需要你解决的问题,你还能干其它事情?对于一个排在第四的业务你是没有机会的。所以垂直搜索引擎的成功肯定不是具备良好资源的行业门户、也不会是大搜索的公司,必然是专注于某一行业的搜索引擎公司。因为只有专注,才能将一件事情做到极致。

  7. 创新

  失败不要紧,但是如果搜索引擎公司没有创新,那这个搜索引擎公司必然面向的就是死亡。

  8. 需要完全掌握主要技术。

  一个核心业务不可能通过外包手段来解决技术问题。虽然找个大公司外包技术看起来很美丽,很快速,甚至成本比较低。但是这是在毁灭你的将来。因为这是产品,不是项目。产品是需要不断完善调整的,用户的需求也是变化的需要挖掘的,互联网也是变化的,你外包技术绝对不可能做到灵活、及时满足各种变化。在和竞争对手竞争的时候您如何保持您的领先优势?(前文说了,如果被对手保持领先一段时间,那么你之前的领先优势就荡然无存)。这里还没有考虑竞争问题,购买其它搜索引擎公司的技术,对方会不会把真正的技术毫不保留的卖给你。再说,卖你你你能搞懂吗?技术再困难也要自行解决。否则你注定失败。最好的办法就是购买核心技术缩短研发周期、成本、风险,再在这个核心技术进行自主研发。

  这是垂直搜索的技术门槛,看似不高,其实很高。

  对于技术问题可以迂回解决,用最简单的技术满足用户最迫切的需求。用户是不会关心技术实现的。

  模板方式可以是网页结构化信息抽取技术的补充。对于可行的应用早期采用模板技术也是不错的选择。比如chinabbs就做的很好,用户的主要需求是要浏览到好的帖子,所以加强内容的建设,找高水平的编辑做推荐,而且在界面和易用性上也很不错。领先qihoo。技术方面他们初期采用的应该是模板自动生成方式采集论坛信息,比qihoo技术水平差,但是这目前不是用户需求的关键,而且qihoo技术水平层次虽然高但是如果不成熟,体现给用户的东西未必就强。Chinabbs接下来再解决技术难点,在技术上有提升,那么他就能持续保持领先优势了。(但是话又说回来,招聘好的编辑很容易,技术要提升一个层次并且成熟很难,而且很耗费时间,当然用户习惯和知名度也是需要很长时间培养的)

  9. 用最简单的技术实现用户最迫切的需要

  技术重要,但是技术的使用得当更重要,技术是为用户体验服务的。只要能满足用户需要,什么技术都可以,简单不代表不行,用最简单的技术实现用户最迫切的需要。百度的整体技术我认为离google中文至少有1年以上差距,很多方面差距更大,但是百度的效果比google好,原因就是将简单的技术用于实现用户迫切的需求。

  举个我身边的例子来描述简单的技术实现需求:我把我们的基于视觉的网页块分析的正文抽取技术演示给一好友看,好友看后说:我们也实现了。我大惊,他们不是做搜索的,居然也实现了! 他告诉我他们实现的方法后,我再次吃惊,深感简单的技术也可以很好的解决问题,虽然不完全解决,但是能满足自己的需求就好。他们的解决方法是:对网页的html进行分析,将整段文字中没有html代码的文字提取出来,这就是正文。(惊叹!!如此简单!!注:他们的信息源都是这样的格式)

  10. 根据中国本土互联网特点,强力的antispam,对信息进行清洗。

  11. 很多人误解垂直搜索就是把相关的行业网页做一个采集,进行正文抽取,实现搜索,完成信息册查询。其实并非如此。如果这样无法和网页搜索竞争,网页搜索很容易就可以将网页库按行业分类、按地区分类。

  垂直搜索应该是对垂直行业信息进行深度的加工,有效的整合,为用户提供网页搜索无法做到的专业性、功能性,为用户提供深一步的服务和完整的体验,而且不仅仅是提供信息的检索。垂直搜索是和信息搜索有本质的差异化的。

  12.专注用户体验的改善,任何的宣传炒作都是空乏无意义的,搜索引擎的核心在于用户体验,你只要改善用户体验,比别人强一点点,那么其它人的炒作和宣传都在为你打工

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn