Вопрос:

Что такое хорошая система поиска исходного кода?

development-environment search-engine code-search-engine

9975 просмотра

11 ответа

758 Репутация автора

Кодовая база, над которой я работаю, огромна, и поиск занимает около 20 минут. Я ищу хорошую поисковую систему с исходным кодом в Интернете ... что-то вроде интранет-версии koders.com.

Единственное, что я нашел, - это Krugle Enterprise Edition, который не публикует цены ... и если вам нужно спросить, вы не можете себе этого позволить.

Я действительно предпочел бы простой старый поисковик, без множества других наворотов.

Источник в основном ASP.NET/C# и Javascript.

Автор: toohool Источник Размещён: 19.09.2008 11:38

Ответы (11)


2 плюса

1867 Репутация автора

Lxr отлично работает на больших базах кода, что доказано ядром Linux . Я думаю, что это только для C (вы не указали используемые языки).

Автор: tsg Размещён: 19.09.2008 11:44

1 плюс

21340 Репутация автора

Если у вас так много исходного кода, вам может потребоваться немного времени для настройки поисковой системы для его индексации. Я бы порекомендовал Lucene - он бесплатный, быстрый, довольно легко настроить мощный индекс для любого контента для всех, кто имеет опыт программирования.

http://lucene.apache.org/

Автор: Peter Размещён: 19.09.2008 11:45

-1 плюса

2784 Репутация автора

Возможно, вам следует потратить некоторое время и / или деньги на редактор или IDE, которые поддерживают маркировку символов. Вам нужно всего лишь сделать один проход по всему исходному дереву, чтобы пометить его, и после этого редактор использует поиск по индексу или поиск по карте, чтобы найти определение символа или ссылки.

Некоторыми примерами редакторов или IDE, поддерживающих тегирование, являются Eclipse, Visual Studio, SlickEdit. Некоторые IDE могут вызывать функцию Symbol Browser или что-то подобное.

Автор: shoover Размещён: 19.09.2008 11:52

6 плюса

703543 Репутация автора

20 минут возмутительно! В настоящее время я работаю с базой из более чем миллиона строк исходного кода, и grepping занимает максимум несколько секунд (я использую ack ). Наши домашние каталоги хранятся на файловом сервере и монтируются через NFS, и для ускорения поиска мы делаем это при входе на файловый сервер. Я не уверен, как долго это займет NFS, но это определенно дольше.

Мы также выполняем операции контроля версий при входе на файловый сервер по тем же причинам производительности.

Автор: Greg Hewgill Размещён: 20.09.2008 12:04

1 плюс

6461 Репутация автора

Поскольку вы говорите «опрометчиво», я думаю, вы не заинтересованы в решениях командной строки.

Такой инструмент, как ctags, будет индексировать и искать кодовые базы C # и JavaScript (среди многих других).

Что очень удобно в ctags, так это то, что он может быть объединен с vim либо с плагином taglist для просмотра исходного кода, либо с vim omnicomplete для включения автозавершения кода.

Автор: mbac32768 Размещён: 20.09.2008 12:06

3 плюса

13485 Репутация автора

В Linux я использую утилиты GNU ID. Эти функции аналогичны grep, но работают с индексом, поэтому они невероятно быстрые. Вы запускаете mkid для создания индекса, а затем одну из других утилит, таких как «gid», которая является версией grep для ID Tools, чтобы выполнить поиск по всему индексу. У меня есть работа cron, которая иногда запускает mkid.

Инструменты ID также работают в Windows, либо с Cygwin, либо в качестве стандартной программы Windows.

Автор: David Dibben Размещён: 20.09.2008 12:48

9 плюса

88090 Репутация автора

Я рекомендую OpenGrok . Есть несколько других движков, вот краткий обзор их.

Автор: Mauricio Scheffer Размещён: 28.09.2008 11:42

1 плюс

13098 Репутация автора

Некоторое время я использовал cs2project , это поисковая система с открытым кодом на c #, основанная на Lucene.NET. К сожалению, он больше не разрабатывается.

Автор: Igor Brejc Размещён: 26.10.2009 07:02

0 плюса

82236 Репутация автора

Смотрите нашу поисковую систему исходного кода SD . Язык знает и обрабатывает многие языки (C, C ++, C #, Java, ObjectiveC, PHP, VB.net, VB6, Ada, Fortran, COBOL, ...). Поиск в Linux Kernal занимает 2,8 секунды (7,3 миллиона строк, 18000+ файлов).

Поскольку он учитывает язык, он может игнорировать языковые элементы, не относящиеся к вашему поиску (например, игнорировать комментарии, форматирование и пробелы, если вас интересует только идентификатор или выражение). Он может искать внутри идентификаторов, строк и комментариев. У него есть опция поиска по полному регулярному выражению, если вы действительно хотите это сделать.

Он использовался для систем с десятками миллионов строк кода и, в одном случае, о которых мы знаем, для системы, содержащей более миллиона файлов.

Автор: Ira Baxter Размещён: 12.11.2009 06:40

1 плюс

24692 Репутация автора

Я использовал OpenGrok раньше и был очень доволен этим. Другая альтернатива:

Гонзуи http://gonzui.sourceforge.net/screenshots.html


(источник: sourceforge.net )

Автор: f3lix Размещён: 14.07.2011 07:41

0 плюса

1067 Репутация автора

У меня была похожая проблема. Я работаю в софтверной компании, где проект включает скрипты на c #, c ++, asp.net, db и даже исходный код vb6 (да, это головная боль, компилирующая несколько проектов vb6, когда нет концепции решения, как в более поздней версии Visual Studio. ..)

Я использовал Visual Studio 2010, но мне пришлось использовать сторонний текстовый редактор для поиска в сценариях БД и в исходном коде vb6.

Я провел некоторое исследование и нашел KodeEx (http://kodeex.com) и был счастлив с ним. Это инструмент поиска исходного кода на основе индекса. Вам не нужно ничего строить (как другие люди предложили вам сделать с Lucene. Кстати, Lucene - хороший проект с открытым исходным кодом =)). Просто установите его и дайте индексировать ваши проекты. После этого он обычно возвращает результат в течение нескольких секунд.

Автор: user156144 Размещён: 26.11.2011 04:19
32x32