http://infolab.stanford.edu/~backrub/google.html
我正在阅读 Google 关于搜索引擎实施的白皮书。
在谷歌的系统设计中,倒排索引被分片成桶,希望能够更快地查找。
我正在构建自己的搜索索引作为练习,并且我已通过倒排索引作为哈希图实现(以恒定的时间复杂度进行查找)
现在,如果我将倒排索引分成一堆桶,我仍然看不到在一个整体倒排索引上使用它们有任何实用性。
因为在实例化倒排索引对象时,如果将所有桶从磁盘反序列化到 RAM(将桶加载到 RAM 中),则所有桶的总大小仍然等于单片倒排索引。在这种情况下,在一个大型倒排索引上使用桶在计算复杂性方面并不是特别理想。
在另一种情况下,我只将少数桶加载到 RAM 中,如果我在查询中得到一个存在于已卸载桶中的单词,则必须加载该桶,这将花费处理时间,从而减慢搜索速度发动机的性能。
对于这种情况,你们有什么建议?
我认为桶尺寸应该足够小,这样可以减少装载时间。