22

我工作的代码库非常庞大,grep 大约需要 20 分钟。我正在寻找一个很好的基于 Web 的源代码搜索引擎……类似于 koders.com 的内部网版本。

我发现的唯一东西是 Krugle 企业版,它没有公布价格……如果你不得不问,你买不起。

我真的更喜欢一个普通的旧搜索引擎,没有很多其他的花里胡哨。

源代码主要是 ASP.NET/C# 和 Javascript。

4

11 回答 11

9

我推荐OpenGrok。还有一些其他引擎,这里是对它们的快速回顾。

于 2008-09-28T23:42:20.963 回答
6

20分钟太离谱了!这些天我正在使用超过一百万行的源代码库,并且 grepping 最多需要几秒钟(我使用ack)。我们的主目录存储在文件服务器上并安装在 NFS 上,为了加快 grepping,我们在登录到文件服务器时执行此操作。我不确定 NFS 需要多长时间,但肯定会更长。

出于同样的性能原因,我们还在登录到文件服务器时进行源代码控制操作。

于 2008-09-20T00:04:57.313 回答
3

在 Linux 上,我使用 GNU ID Utils这些工具具有与 grep 类似的功能,但从索引中工作,因此它们的速度非常快。您运行 mkid 来创建一个索引,然后运行其他实用程序之一,例如“gid”,它是 grep 的 ID 工具版本,可以在整个索引中进行 grep。我有一个偶尔运行 mkid 的 cron 作业。

ID 工具也可以在 Windows 上使用,可以使用 cygwin 或作为标准 Windows 程序

于 2008-09-20T00:48:52.060 回答
2

Lxr在大型代码库上工作得很好,正如linux 内核所证明的那样。我认为它仅适用于 C(您没有指定使用的语言)。

于 2008-09-19T23:44:35.117 回答
1

I have used OpenGrok before and was quite happy with it. Another alternative is:

Gonzui http://gonzui.sourceforge.net/screenshots.html


(source: sourceforge.net)

于 2011-07-14T07:41:07.423 回答
1

我使用cs2project有一段时间了,它是一个基于Lucene.NET的开源c#代码搜索引擎。不幸的是,它不再被开发。

于 2009-10-26T07:02:39.307 回答
1

如果您有这么多源代码,您可能需要花一些时间来设置搜索引擎以对其进行索引。我会推荐 Lucene——它是免费的,速度很快,对于任何有编程经验的人来说,为任何内容建立一个强大的索引非常容易。

http://lucene.apache.org/

于 2008-09-19T23:45:31.590 回答
1

既然你说'grepping',我想你对命令行解决方案并不感兴趣。

ctags这样的工具将索引和搜索 C# 和 JavaScript 代码库(以及许多其他代码库)。

ctags 非常简洁的地方在于它可以与 vim 结合使用 taglist 插件以允许源代码浏览或与 vim omnicomplete 结合以启用代码完成。

于 2008-09-20T00:06:32.723 回答
0

我有一个类似的问题。我在一家软件公司工作,该公司的项目涉及 c#、c++、asp.net、db 脚本甚至 vb6 源代码(是的,当没有像更高版本的 Visual Studio 那样的解决方案概念时,编译多个 vb6 项目是一件令人头疼的事情。 ..)

我一直在使用 Visual Studio 2010,但必须使用 3rd 方文本编辑器来搜索 db 脚本和 vb6 源代码。

我做了一些研究,发现了 KodeEx (http://kodeex.com) 并且对它很满意。它是一个基于索引的源代码搜索工具。您不必构建任何东西(就像其他人建议您使用 Lucene 所做的那样。顺便说一下,Lucene 是一个不错的开源项目 =))。只需安装它并让它为您的项目编制索引。之后,它通常会在几秒钟内返回结果。

于 2011-11-26T04:19:24.547 回答
0

请参阅我们的SD 源代码搜索引擎。语言感知和处理多种语言(C、C++、C#、Java、ObjectiveC、PHP、VB.net、VB6、Ada、Fortran、COBOL 等)。在 Linux 内核中搜索需要 2.8 秒(730 万行,18000 多个文件)。

因为它是语言感知的,它可以忽略与您的搜索无关的语言元素(例如,如果您只对标识符或表达式感兴趣,则忽略注释、格式和空格)。它可以在标识符、字符串和注释中进行搜索。如果您真的想这样做,它有一个完整的正则表达式字符串搜索选项。

它已被用于包含数千万行代码的系统,在我们所知道的一种情况下,一个包含超过一百万个文件的系统。

于 2009-11-12T18:40:48.607 回答
-1

也许您应该在支持符号标记的编辑器或 IDE 上投入一些时间和/或金钱。您只需遍历整个源代码树即可对其进行标记,然后编辑器使用索引搜索或映射查找来查找符号定义或引用。

一些支持标记的编辑器或 IDE 示例包括 Eclipse、Visual Studio、SlickEdit。一些 IDE 可能会调用功能符号浏览器或类似的东西。

于 2008-09-19T23:52:46.983 回答