搜索的工作是依靠链接,所以这是最关键词的第一步,百度最先申请的专利好像就与此有关。
搜索靠蜘蛛的爬行来提取数据。当然在互联网上,链接又是你给出蜘蛛(也就是搜索相关数据库)到你页面的路径。所以,兄弟们没有必要大张旗鼓的把功夫用在蜘蛛上。了解就好了。
提取回去的排序一系列计算,是个搜索的核心机密。但是这个机密和特务的活动一样。说白了就是不想让人知道,但是还必须去运作。而咱们就说想知道这个里面的哪怕一点点计算因素。
研究搜索的检索结果。搜索结果就是最好的老师。
再看一段重要的文章:
4.2.5 命中列表(Hit Lists)
命中列表(hit list)对应于某个特定的词在某个特定的文档中一次或多次的出现,它主要用来记录词在文中出现的位置、字体、大小写等信息。命中列表在前序索引和倒排索引中都占据了绝大部分的空间。因此,命中列表需要尽可能地以一种高效率的方式来实现。有几个可以用来参考的编码方案:一个是简单编码方式(三位整数法),第二是压缩编码方式(对位的分配进行手工优化),最后一种是有名的霍夫曼编码方式。Google在权衡了空间的占用量以及对于位操作的复杂性之后,选择了第二种压缩编码方案。命中的实现细节,
在这种压缩编码中,每个命中占用2个字节的空间。命中又可细分为两种类型:特殊命中(fancy hit)和普通命中(plain hit)。特殊命中(fancy hit)是指出现在URL、页面标题、锚文本或者meta标签中的命中,除此之外的全部命中都是普通命中(plain hit)。普通命中(plain hit)包含标识大小写的位(1位)、字体大小位、以及12位的为之心系(如果在文档中的位置大于4095,则一律以4096表示)。字体大小是字体在文档中的相对大小,用3位来表示。字体大小只使用从000到110这七个数,111被用来单独表示一个特殊命中(fancy hit)。特殊命中(fancy hit)也包含一个大小写的位(1位)、字体大小(设为7=111)、4位的类型编码、以及8位的位置信息。对于出现在锚文本的命中(anchor hit)来说,8位的位置信息又细分为锚中的位置信息(4位)以及锚所在的文档docID的hash值(4位)。这样,在针对某些特定的词进行查询时,如果找不到足够的链接匹配,就可以从这些anchor hit中找一些来补充。以后,考虑到对于位置信息和docID的哈希值哈还会有更多的解决方案,anchor hit的存储方式将会有所改变。另外,Google之所以使用字体的相对大小,主要是考虑到在对文档计算级别时,我们不能仅仅因为A文档使用了较大的字体就说A文档比B文档级别高。
命中列表的长度保存在命中列表的前面。为了节省空间,采用了一些特殊的技巧,从前序索引的worldID自段和后排索引的docID字段中分别压缩出8位和5位空间,用来存储该长度值。如果长度值出现溢出,这些位将使用一个溢出符表示,并在紧接着的下两个字节中包含实际的长度值。
这个是GG对于命中的解释,虽然时过境迁,但是还是有一定的指导意义。
我认为特殊命中的解释:
就是搜索计算排名,提取最权重的关键词的地方。也许你在这里没有关键词。
这个里面有一些搜索的无奈,就是无法保密的东东,也有很隐秘的算法。一般的都可以看到的,例如:标题 、title等等
但是也有些不好判断和比较隐秘的算法。这个就需要大家努力去探究。
发表于 @ 2006年12月31日 11:59:00 | 评论( loading... ) | 举报| 收藏