最近在做搜索相关的项目。虽然谷歌和百度用了不知道多少年了,但此前可以说在搜索技术上是纯小白。于是最近恶补了一些相关知识。好久没有从零开始接触一个全新领域了,虽然有点焦头烂额,但过程中越来越感到乐趣。边学边随便写点笔记备忘,梳理搜索的技术逻辑。
(1)爬虫
从最基本的搜索行为开始。搜索需要满足的,是用户输入一个关键字,得到与之相关的信息。那么,首先要有一个信息池。如果没有任何信息,搜索引擎倒简单了,只要一行代码,always返回空就行了。。。
这个信息池可以是自己的,比如淘宝上面阿里提供的搜索商品功能。但如果想做一个像百度一样的全网搜索,就一定要包含别人的东西,因为没有一家公司可以囊括整个互联网,但用户能够选择的,理论上是整个互联网。正因为整个互联网内容太多,人工去寻找是不可能的,搜索成为刚需,于是造就了谷歌和百度富可敌国的巨大市值。所以,爬虫是第一步,爬到别人的网页资源,资源越多,搜索引擎越有竞争力。
爬虫是后台系统,即不直接和用户打交道,可以24小时不停地在服务器上跑。对于爬虫而言,当然有很多技术的挑战,比如如何充分地发掘到暗网资源,如何动态更新资源等。但可能更重要的是非技术因素,经典案例是淘宝屏蔽百度。互联网最要的是入口地位,把资源开放给搜索引擎,能够借助搜索推广的同时,也意味着将入口地位部分地交给了搜索引擎。