Инструменты командной строки с открытым исходным кодом для индексации большого количества [закрытых] текстовых файлов

Я ищу любой инструмент командной строки с открытым исходным кодом или инструменты, которые позволят мне индексировать и искать большое количество файлов простого текста. Приблизительный поиск был бы плюс. Инструмент только должен распечатать файлы, которые соответствуют, хотя некоторый контекст соответствия был бы полезен. Инструмент GUI не полезен для моего приложения, ни является чем-либо, что ищет файлы один за другим (grep, например). Я в основном нацелен на платформы Unix (osx, Linux, bsd).

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

Какие-либо идеи?

7
задан 09.04.2017, 14:53

4 ответа

Если Вы хотите искать файлы именем файла:

Стандартный инструмент Unix для этого, располагаются. Это создает базу данных файлов в задании крона, затем locate перерывает соответствия.

Это - часть большинства дистрибутивов Linux (обычно, пакет "располагается" или "mlocate").

Если Вы хотите искать файлы содержанием:

Существует множество поисковых систем, доступных, который индексирует документы для Вас (некоторые даже поддерживают другие форматы помимо простого текста, например, документа текстового процессора). Примерами был бы поиск по компьютеру Гончей и Google. На Википедию существует довольно исчерпывающий список:

http://en.wikipedia.org/wiki/List_of_search_engines#Desktop_search_engines

Править:

Если Вы не хотите поисковую систему, которая работает в фоновом режиме или автоматически индексирует все Ваши файлы, можно, вероятно, все еще использовать механизм поиска по компьютеру. Большинство из них позволяет Вам управлять процессом индексации, таким образом, можно запустить индексацию вручную и указать, какие каталоги индексировать и куда поместить индексный файл.

3
ответ дан 07.12.2019, 14:53

Лучшая вещь, которую Вы могли сделать, подать текстовые файлы в базу данных MySQL и использовать ее FullText, соответствующий системе. Это даст очень быстрые поиски с рейтингами о том, как хорошо результаты соответствуют поиску.

Соединение интерфейсом с базой данных MySQL с другими системами, такими как веб-сайт для поиска документа, и т.д., было бы достаточно простой задачей.

Полезные ресурсы:

2
ответ дан 07.12.2019, 14:53

Я раньше использовал свист-e, но это было приблизительно десятилетие назад. Разработка, кажется, остановилась с тех пор (иногда останавливаемый, означает “стабильный”, не “мертвый”), но она могла бы работать на Вас.

2
ответ дан 07.12.2019, 14:53

Если немного сценариев Python хорошо для Вас, взгляните на свист: https://bitbucket.org/mchaput/whoosh/wiki/Home

И, er, я предполагаю, что Вы посмотрели на grep. Если Ваш filebase является достаточно маленьким для вписывания в RAM (кэш-буфер), это на самом деле довольно быстро. Зависит от того, как сложный на том, насколько сложный Ваши запросы, конечно.

0
ответ дан 07.12.2019, 14:53

Теги

Похожие вопросы