V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
black11black
V2EX  ›  问与答

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

  •  
  •   black11black · 2020-10-15 14:46:45 +08:00 · 564 次点击
    这是一个创建于 1504 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    1 条回复    2020-10-15 15:55:49 +08:00
    oott123
        1
    oott123  
       2020-10-15 15:55:49 +08:00
    你都知道倒排索引了,就可以查倒排索引是怎么实现的了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3101 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:29 · PVG 22:29 · LAX 06:29 · JFK 09:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.