程序源代码搜索引擎和普通搜索引擎不太一样,我们常见的搜索引擎,例如百度,谷歌, bing,都是词语级的搜索引擎,它们搜索的最小单位,是一个词语(word, term, token),一个词语由多个字符组成,如果想搜索词语中的某几个字符,词语级的搜索引擎就无能为力了,这时候就需要字符级的搜索引擎,例如你要搜索一个手机号码的后4位。
小唐代码搜索引擎(http://www.tanglib.com)是一个字符级的搜索引擎,搜索精度精确到单个字符,适用于程序源代码全文检索,程序语言的每个符号都有特殊的含义,甚至空格都是有意义的,只有字符级的搜索引擎才能实现精确查找。
字符级搜索引擎在搜索多词串联(例如"a b c d")的性能上超过词语级搜索引擎,因为词语级搜索引擎视为多个词组合搜索,组合搜索需要消耗大量时间。
小唐代码搜索引擎目前支持Java,C,JavaScript,PHP,C++,Python,C#,Ruby,GO,TypeScript,CSS,Shell,Scala,Makefile,SQL,Lua,Perl,Dockerfile,Haskell,Rust,TeX,Batchfile,CMake,Visual Basic,FORTRAN,PowerShell,Assembly,Julia等28种程序语言源代码的检索。
小唐代码搜索引擎的源代码来自CodeParrot数据集,这是一个开源的代码数据集,来自于huggingface网站。CodeParrot数据集是很多大语言模型的代码数据集,AI代码生成工具PolyCoder正是基于CodeParrot数据集。
CodeParrot数据集的源代码来自于Github网站,star数量超过100的项目,总共包含123万个项目,730G源代码,1.15亿个代码文件。
除此之外,小唐代码搜索引擎还包含了一些巨型开源项目的检索,有如下项目:
OpenHarmony鸿蒙源代码,安卓13源代码,linux内核源代码6.29,Qt源代码6.5.0,libreoffice源码7.5.2.2,chromium源码,数据库源码(mysql8.0, mongodb, redis, postgres, sqlite)等。
写程序最快的方法就是依葫芦画瓢,程序员只要找到葫芦,画瓢就容易了,所以已有的程序示例对编程非常有帮助。
目前有很多写代码的AI工具,包括chatgpt都可以写代码,小唐源代码搜索引擎的特点是响应更快,可以达到毫秒级,而AI工具的响应速度一般比较慢;另一个区别是AI工具写出的代码正确性无法保障,而小唐源代码搜索引擎搜到的代码来自Github网站,star数量超过100的项目,正确性更有保障。