Подтвердить что ты не робот

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

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

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

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

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

Ответ 3

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

Инструменты ID работают также и с Windows, либо с cygwin, либо как стандартная программа Windows

Ответ 4

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

Ответ 5

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

http://lucene.apache.org/

Ответ 6

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

Инструмент типа ctags будет индексировать и искать С# и JavaScript-кодовые базы (среди многих других).

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

Ответ 7

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

Ответ 9

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

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

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

Ответ 10

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

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

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

Ответ 11

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

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