21

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

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

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

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

+0

Можете ли вы объяснить, что именно является целью, например? ваш собственный sourceforge для кода, или вам нужен расширенный просмотрщик? Является ли первичный поиск/grep? И что вы ожидаете «найти». Я кратко посмотрел на кодировщиков, и я могу, (на самом деле) представить себе случай использования для компании, и, следовательно, вопрос. – Till 2008-09-19 23:50:03

+0

И где вы храните свою базу кода? Если у каждого есть зарегистрированная локальная копия (как это должно произойти в современных VCS), она должна идти довольно быстро. Если вы работаете над NFS, вы можете искать базу кода только так быстро, как можете перенести все это в вашу локальную сеть. – 2009-11-12 18:50:30

+0

@David: ... если вы настаиваете на чтении текста каждого файла во время поиска. Если вы сначала индексируете файлы, вам не нужно сканировать текст, и это может быть намного быстрее. См. Мой ответ. – 2009-11-14 20:29:41

ответ

2

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

1

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

http://lucene.apache.org/

-1

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

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

6

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

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

1

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

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

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

3

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

Идентификатор инструменты работают на Windows, а также, либо с Cygwin или как standard windows program

8

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

1

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

0

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

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

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

0

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

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

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

Смежные вопросы