华人澳洲中文论坛

热图推荐

    GitHub痛改代码搜寻引擎,18小时给155亿个文档创立索引,面前技术原理已地下

    [复制链接]

    2023-2-8 21:14:27 13 0

    原标题:GitHub痛改代码搜寻引擎,18小时给155亿个文档创立索引,面前技术原理已地下  
    萧箫 发自 凹非寺   
    量子位 | 大众号 QbitAI   
    还记得GitHub公布的新版 代码搜寻引擎吗?   


    通过一番测试优化后,GitHub当初地下了面前的技术原理。  
    最新版搜寻引擎,不只解决了以前搜代码时“风马牛不相及”的状况,还能够间接用正则表白式搜寻;另外也解决了部份名目上传后搜不到等问题……  
    网友们看完技术原理后感到惊喜:  
    这真不错!我看到了谷歌代码搜寻引擎的影子。
      其实我知道,很少有做代码搜寻引擎的人违心去GitHub,但很快乐能看到这一功用将变得更好用。
        这真不错!我看到了谷歌代码搜寻引擎的影子。  
    其实我知道,很少有做代码搜寻引擎的人违心去GitHub,但很快乐能看到这一功用将变得更好用。  
    要知道,此前GitHub的代码搜寻引擎,一度被用户吐槽“形同虚设”。  
    有不少用户间接本人找了更好用的代码搜寻引擎,专门搜寻想要的代码:  


    展开全文    在这类状况下,新版GitHub代码搜寻引擎到底采取了甚么技术,做出了哪些改进?  
    基于Rust言语的搜寻引擎   
    GitHub新版代码搜寻引擎名叫Blackbird,它的症结在于从新构建了一个索引。  
    这里次要完成两类索引,包罗正向索引 (Forward index)和反向索引 (Inverted index)。   
    简略来讲, 正向索引指先给数据库中的各种内容编号 (ID),而后经过这些内容ID来搜寻对应的详细内容:   


    这类搜寻办法虽然对比直观,也容易了解,但搜寻量太大了。假如咱们只想经过症结字搜寻对应内容,就需求用到反向索引。  
    反向索引即经过内容中症结词,间接搜到对应的内容ID,从而立刻定位到对应的内容。   


    详细到反向索引完成办法上,GitHub采取了一种名叫ngram索引的办法,能够很便利地查找内容的子字符串。  
    这类办法怎么了解?  
    以limits这个字符串为例,假如ngram中的n=3,那末咱们就能将它分为lim、imi、mit、its四个子字符串。  


    这时候候搜寻恣意一个字符串,都能找到对应的内容ID,从而定位到想要搜寻的内容。  
    但GitHub的顺序员们也意想到,这样构建的索引太大了,要真这样搜寻的话会致使办事器不敷用,因此还需求对这类办法进行优化。  
    在Hacker News中有一名GitHub顺序员对此做出理解释,即采取一种叫做掩盖稠密ngrams (covering sparse ngrams)的办法生成候全集,并搜寻对应内容,其中9代表ch、6代表he、3表现es,以此类推:   


    以这种办法为根底建设的零碎如下:  


    所以,新版搜寻引擎是不是真的比以前更好用了?  
    测试版体验如何?   
    目前GitHub中有大约4500万个存储库、十一5TB代码和155亿个文档。  
    据GitHub民间表现,本来在改进以前,处置155亿个文档需求大约36个小时。  
    但是在重写代码之后,需求抓取的文档数量升高了50%以上,因此只需求 18个小时摆布就能从新给全部语料库创立索引。   
    除此以外,需求搜寻的内容量也升高了不少。  
    本来需求搜寻的内容在十一5TB摆布,当初将反复内容和数据删除之后,包罗索引和内容紧缩正本加起来只要 25TB大小,缩减到以前的25%摆布。   
    目前测试版仍旧在凋谢请求中,有不少GitHub用户曾经试用了一波。  
    虽然有不少用户对新搜寻引擎测试版反响不错,但也有人提出了一些倡议。  
    例如目前这个代码搜寻引擎还没方法过滤fork名目,有时分用代码搜寻引擎,搜出来全是同一个名目。  


    对此GitHub顺序员也给出了反馈,表现他们以前始终在调剂索引这一块,当前会斟酌这样的附加功用。  
    除此以外,也有用户表现,GitHub新版搜寻引擎仍旧欠好用,它历来不区别符号的定义和使用,有时分搜出来的后果,往往需求日后翻5页摆布,能力找到想要的后果。  


    对此,还有网友保举了本人罕用的代码搜寻引擎,如Sourcegraph。  


    你试用过GitHub的新代码搜寻引擎了吗?或是还有甚么其余好工具保举?  
    新版代码搜寻引擎请求试用:  
    http://github.com/features/code-search  
    —   
    「卫星互联网深度产业讲演 · 量子位智库」下载  
    与数家企业进行沟通交流并普遍调研后,量子位智库撰写了 《卫星互联网深度产业讲演》,扫描下方二维码可下载残缺讲演。   


    点这里 ?关注我,记得标星哦~   
    一键三连「分享」、「点赞」和「在看」  
    科技前沿停顿日日相见 ~

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    返回列表 本版积分规则

    :
    注册会员
    :
    论坛短信
    :
    未填写
    :
    未填写
    :
    未填写

    主题33

    帖子40

    积分193

    图文推荐