经过搜索引擎的抓取和预处理,可以形成基础的检索数据库,但是还要经过一系列的检索过程,才能返回符合用户需求的结果,这就是搜索引擎工作与用户交互的重要流程。用户在搜索引擎的界面,输人需要查找的关键词,搜索引擎会对关键词进行过滤和拆分,并查找各词的网页文件,找出其中的交集,确定最低排名权重值,对达到标准的网页文件进行排名计算,并加人影响排名的特殊条件如惩罚和人工加权等,获得最终的排名结果返回给用户,这就是完整的检索过程。检索完成后,搜索引擎还会继续工作,那就是利用用户搜索习惯优化检索服务。如图2.6所示为一般搜索引擎检索服务的流程。
对用户输人的搜索词,进行拆分、降噪、调用方式选择等操作,以确定检索命令。当搜索引擎接收到用户提交的搜索词后,搜索引擎首先会对搜索词进行拆分(主要是对汉字),因为这是和网页拆分相对应的,所以拆分方式相同。拆分成最优词组后,过滤掉搜索词中对搜索结果意义不大的词,如“啊”“哈”“了”等,以提高搜索结果的准确率,减少检索时间。一般情况下,这些经过拆分降噪的词组,会使用逻辑“与”,即“+”类型,就是一个网页中同时含有这些拆分的关键词,才是更符合条件的网页,如“网站优化”的搜索命令就是,调用含有“网站”和“优化”两个词的网页;另外搜索引擎中还有其他逻辑类型,如逻辑“或”“非”等,“或”即是网页含有其中一个词,“非”即是网页中不含有某词。搜索引擎能判断不同组合的搜索词,确定搜索命令,用于提取出数据库中符合条件的网页文件。
例如,用户搜索“电脑无法启动了”,搜索引擎就将其拆分为“电脑”“无法”“启动”“了”,其中“了”并没有实际意义,或者说对搜索结果的影响不大,而且含有“了”的网页文件太多,再做筛选的意义不大,因此“了”就会在搜索命令中被去掉,但是有时候我们也能看到有“了”的结果,那是因为搜索引擎把“了”和其他词划分为一个词,而且数据库中也有此索引。经过过滤形成“电脑”+“无法”+“启动”的搜索命令,以查询同时含有这几个词的网页文件。百度搜索“电脑无法启动了”的结果,从结果的第3位可以看出,搜索词“了”并不单独作为搜索命令中的一部分,所以过滤单独筛选命令,另外的结果中同时含有“电脑”“无法”“启动”三个词。