上期讲到了搜索引擎是如何抓取内容的,今天就来讲下搜索引擎的下半部分,搜索引擎的内容抓取的目的就是为了实现用户的搜索。对于网站来说,站点内容搜索是通过关键词来匹配,找出关联性最大的结果进行展示,搜索引擎的亦是如此。
但是搜索引擎面对整个网络,几乎抓取了互联网上的大部分内容,如果只是简单的粗暴的存储抓取到的内容,那么存储成本会很大,大量的重复内容效率会很低;对于用户搜索的时候因为内容过于庞大,搜索效率很低并且结果不精准,这就要依托于搜索引擎的算法加持。
对于搜索引擎面对最大的问题就是匹配的精准性,对于搜索引擎存在意义就是解决用户的搜索需求,但是机器毕竟是机器,及时现在的人工智能其实也是智障,所以就需要通过算法更加精准的把关键词和文档关联起来。
对于计算机来说,目前来说不可能读懂文档的内容,只能把文档分成若干的片段,经过算法分析得出文档的和各个关键词的关联性。检索系统主要包含了五个部分,如下图所示:
(1)Query串切词分词即将用户的查询词进行分词,对之后的查询做准备,以“10号线地铁故障”为例,可能的分词如下(同义词问题暂时略过):
10 0x123abc
号 0x13445d
线 0x234d
地铁 0x145cf
故障 0x354df
(2)查出含每个term的文档集合,即找出待选集合,如下:
0x123abc 1 2 3 4 7 9…..
0x13445d 2 5 8 9 10 11……
……
……
(3)求交,上述求交,文档2和文档9可能是我们需要找的,包含0x123abc0x123abc的文档有1 2 3 4 7 9,包含0x13445d的文档有2 5 8 9 10 11;只有文档2和9包含了最多的分词,搜索引擎关键词搜索的匹配就是将搜索关键词分词后,然后对各个文档出现的分词的数量和频次进行求交。
整个求交过程实际上关系着整个系统的性能,这里面包含了使用缓存等等手段进行性能优化;
(4)各种过滤,举例可能包含过滤掉死链、重复数据、色情、垃圾结果以及你懂的;
(5)最终排序,将最能满足用户需求的结果排序在最前,可能包括的有用信息如:网站的整体评价、网页质量、内容质量、资源质量、匹配程度、分散度、时效性等等。
到了这里大家可能觉得那么直接堆砌关键词,关键词密度高了,那么关键词求交的几率不就高了,排名不就有了吗?但是求交是对于数据最基础的筛选,只能说内容的关联性到了,有机会参与排名;但是最终的排名第五小点是非常关键词的,现在搜索引擎对于用户体验非常的注重,所以还有算法评估着网站的用户行为数据反馈着网页的质量,更好的确认网页的质量来决定最终的排名。