考虑下面的搜索结果:搜索引擎如何进行“AND”操作?
- Google for 'David' - 591百万安打0.28秒
- Google for 'John' - 785百万安打0.18秒
确定。页面被编入索引,它只需要查找索引表中的计数和前几个项目,因此速度是可以理解的。
现在考虑下面的搜索与操作:
- Google for 'David John'( '大卫' 和 '约翰') - 173个百万命中在0.25秒
这让我打勾;)搜索引擎如何能够如此快地获得巨大数据集上的AND运算结果?我看到以下两种方式来执行任务,两者都很糟糕:
- 您进行'大卫'的搜索。拿着巨大的临时表,并在其上搜索“约翰”。但是,临时表不是由'John'索引的,因此需要进行强力搜索。不管你有什么样的硬件,它在0.25秒内都不会计算。
- 通过所有可能的词索引 像'大卫约翰'组合。然后我们面临一个关键数量的组合式爆炸,并且 甚至没有Google的存储 容量来处理。
你可以和在一起as many search phrases as you want,你仍然可以在0.5秒内得到答案!怎么样?