华人澳洲中文论坛

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

[复制链接]

2023-2-8 21:14:27 44 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

帖子42

积分201

图文推荐

  • 撞穿学校栅栏害死十一岁男孩的司机不必坐牢

    一位女司机撞穿学校栅栏、害死了11岁男孩,被罚20

  • 全科医生正告花粉症时节正在好转

    全国各地的全科医生正告春季的开端标记着花粉症时

  • 新西兰总理:出世在新西兰的新纳粹Thomas S

    新西兰总理拉克森称新纳粹Thomas Sewell是坏人,

  • 新州护士和助产士承受暂时加薪3%的前提

    新州护士和助产士投票承受政府提出的暂时加薪3%以

  • 新纳粹份子如何利用“普通父母”的掩护在反

    星期天,新纳粹份子在反移民集会开端前大约一个小