关于搜索引擎原理

我知道这个问题很宽泛 … 也知道这不是一两句话能说清的 …

但是我还是想知道搜索引擎获得结果的原理 …

我有无数个爬虫爬下来一千万条也就是 10M 条的文本 …

现在我要从这 10M 条文本里面获得含有特定字符串的内容 …

分词或其他都不考虑 … 就是有 strpos 特定字符串的文本返回 …

搜索引擎是怎么做到的呢 ..?

一般的搜索引擎你输入关键字之后结果非常快就反馈出来了 …

但是在后台它是如何操作的 ..?

因为待搜索的内容是不确定的 … keyword 索引这种方法显然不可行 …

那么遍历存储的每一个文件 …?

这样的效率真的会比 MATCH AGAINST 高么 ..?

另外说哪怕没有任何记录搜索引擎也会很快提示 Not Found …

如果说一次扫过 10M 条记录 …

数据读取速度也和硬盘转速也是瓶颈 …

不可能有这么快的响应 …

或者是 1k 台服务器的集群 … 每台服务器负责搜索 10k 的数据 …

这也是需要时间的 …

但是现在哪怕在超高并发的情况下 …

搜索速度也不见减慢 …

到底搜索引擎是怎么实现返回搜索结果的呢 ..? – -#

本文是Sunyanzi同学在这里讨论的内容,同时也是我长久以来的疑问,在这里备份一下。


Post a Comment