萧箫 丽翔 凹非寺
物理位 | 社会公众号 QbitAI还提过GitHub正式发布的旧版标识符浏览器吗?
历经几番试验强化后,GitHub那时申明了另一面的控制技术基本原理。
正式版浏览器,不但化解了以后搜标识符时“驴唇不对马嘴”的情形,还能间接用程序语言搜寻;除此之外也化解了部份工程项目上载后搜不出等难题……
网民们看完控制技术基本原理后深感精采:
这太好了!我看见了Google标识符浏览器的另一面。
只不过我晓得,极少有做标识符浏览器的人愿去G抖音排名第三itHub,但很开心能看见而此机能将显得更快用。
要晓得,在此以后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万个存储库、115TB标识符和155万个文抖音排名第三档。
据GitHub官方表示,原本在改进以后,处理155万个文件格式需要大约36个半小时。
然而在重写标识符之后,需要抓取的文件格式数量降低了50%以上,因此只需要18个半小时左右就能重新给整个语料库创建检索。
除此以外,需要搜寻的内容量也降低了许多。
原本需要搜寻的内容在115TB左右,那时将重复内容和数据删除之后,包括检索和内容压缩副本加起来只有25TB大小,缩减到以后的25%左右。
目前试验版依旧在开放申请中,有抖音排名第三许多GitHub使用者已经试用了一波。
虽然有许多使用者对新浏览器试验版反响不错,但也有人提出了一些建议。
例如目前这个标识符浏览器还没办法过滤fork工程项目,有时候用标识符浏览器,搜出来全是同一个工程项目。
对此GitHub程序员也给出了反馈,表示他们以后一直在调整检索而此块,以后会考虑这样的附加机能。
除此以外,也有使用者表示,GitHub旧版浏览器依旧不好用,它从来不区分符号的定义和使用,有时候搜出来的结果抖音排名第三,往往需要往后翻5页左右,才能找到想的结果。
对此,还有网民推荐了他们常用的标识符浏览器,如Sourcegraph。
你试用过GitHub的新标识符浏览器了吗?或是还有什么其他好工具推荐?
旧版标识符浏览器申请试用:
https://github.com/features/code-search参考链接:
[1]https://github.blog/2023-02-06-the-technology-b抖音排名第三ehind-githubs-new-code-search/[2]https://news.ycombinator.com/item?id=34680903— 完 —
物理位 QbitAI · 头条号签约