想要实现一个功能比较完整的搜索引擎,都有哪些技术环节?百度是怎么做的?

black11black 5天前 7

如题,我从以前开始就一直对类似百度这种 0.1 秒搜索出来几亿结果的技术非常感兴趣,这个问题就是单纯想拓宽一下知识面

1 、一般公司的业务场景,最基础的搜索功能,直接用 sql 的全文索引,比如存储一千万篇文章,按照标题搜索,应该都是刚得住的,虽然不知道搜索效果怎么样。

2 、如果要做一个更大数据规模的搜索功能,比如如果有百亿条数据,应该用上述方法是刚不住的,就需要用一些搜索引擎相关的技巧,也是这篇文章主要想问的。

我以前查过一些搜索引擎相关的资料,业务端大体逻辑应该分成三部分,其一分词和分析语意,其二是召回数据库中的资料,其三是进行关联度排序。当然如果像百度这种体量,数据库本身肯定也需要虚拟化才能支持这么高的可用性,数据库相关的暂时不在今天讨论范围内。

我搜索到的资料说,比如有一种常用召回方法叫倒排索引,我很好奇这是怎么的一种索引方法。因为正常来说,比如你已经有一百亿行了,然后你还有比如三十万个客户经常用来搜索的关键字,在此基础上你按照多对多的关系还要建立索引(那理论上这个索引应该庞大到爆炸,会出各种问题才对),到底是怎么回事呢?

最新回复 (1)
  • oott123 1天前
    引用 2
    你都知道倒排索引了,就可以查倒排索引是怎么实现的了
  • 游客
    3
返回