Каков наилучший и эффективный способ индексирования / хранения кода (скрипты, запросы) для поиска / поиска? - PullRequest
2 голосов
/ 29 ноября 2011

У нас есть много кода, запросов в целой куче папок на коробке Linux.Всякий раз, когда мне нужно найти скрипт, я делаю fgrep -ircl --include=*.{sql, py, sh} "Keyword" *.

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

Я планирую индексировать файлы с использованием скрипта Python каждый день в нерабочее время.Больше похоже на рабочий стол Google, но для Интернета (кроссплатформенность).

Что, ребята, вы считаете лучшим способом решения этой задачи?

Ответы [ 2 ]

0 голосов
/ 29 ноября 2011

Используя Python, Xapian - единственное решение, которое вы должны рассмотреть.Он более "голый металл", чем Lucene, но в нем есть поддержка first class для привязок Python к собственной реализации C ++, и он намного меньше и быстрее, чем Lucene с наборами данных реального мира.средние БОЛЬШИЕ наборы данных.

0 голосов
/ 29 ноября 2011

Я написал Perl-сценарий, когда еще предоставляю результат веб-интерфейса, он все еще работает на моем устаревшем веб-сайте blackbeltvb.com, если хотите посмотреть.Это сделал живой поиск, хотя, не проиндексированный, и без выдержек.

Я также написал поиск по сайту wugnet.com, в котором были ранжированы результаты и выдержки, и спроектировал поиск, который теперь есть в QB Desktop.В вашем случае, я бы выбрал такой подход - просто иметь задачу cron, которая добавляет новые или обновленные скрипты / файлы в базу данных, одно большое текстовое поле, а другие поля содержат метаданные, такие как имена файлов и типы.Затем добавьте веб-интерфейс в эту БД, выполнив поиск:

select * from data where keyword like '%word%' and keyword (or keyword) etc...

На сайте blackbeltvb.com есть часто задаваемые вопросы, в которых показано, как построить SQL-запрос для ранжированных результатов ключевых слов, например, «все ключевые слова найдены», «некоторыенайдено "и т.д ...

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