Программное обеспечение для текстового поиска в большом наборе файлов (электронные книги)

Вопрос или проблема

Ищу программу для Windows (похожую на “Everything”), которая может:

  • Рекурсивно сканировать очень большую директорию (2-3 ТБ, 10,000 или даже 100,000 файлов в 1,000 папок)
  • Для каждого “текстового” файла полностью индексировать весь текст в нём
  • Предоставлять возможность находить файлы, в которых содержится данная строка поиска
  • “Текстовые” файлы как минимум включают .txt, .pdf, .epub, .mobi. В идеале и другие известные форматы электронных книг (.fb2, .doc, .docx)
  • Желательна возможность продвинутого поиска (поиск всех/любых из набора поисковых терминов, отрицание поискового термина. Идеально – Regex. Совсем идеально – PCRE).

Дополнительно желаемые функции:

  • Поддержка неанглийского текста, как для индексирования, так и для поиска, в других форматах; в частности, русского текста (KOI-8, Windows-1251)
  • Поддержка Unicode (индексирование и поиск).
  • Возможность просматривать архивы (хотя бы .zip и .rar)
  • Хороший GUI (подобный приложению “Everything”) для отображения результатов поиска. Быстрая фильтрованная таблица, меню действий для каждого найденного файла, включая копирование местоположения, открытие папки с файлом, копирование/вырезка файла как в меню Проводника Windows.
  • Автоматически обновляет индекс по мере добавления/удаления/изменения файлов в файловой системе так же, как это делает Everything.
  • В идеале, бесплатно, но не обязательно, если цена обоснованна.
  • Требуется Windows XP. Бонусные баллы за Windows 8.

Насколько я знаю, Проводник Windows 7 имеет все основные функции, которые вам нужны, и некоторые из дополнительных функций также.


Вы можете индексировать директорию файлов в Windows (7+) двумя способами. Прямо индексировать директорию или сделать её библиотекой.

Прямой индекс: Смотрите здесь: wikiHow: How to Add a Folder to the Windows 7 File Index

Создать библиотеку: В Проводнике перейдите в “Библиотеки” и нажмите “Новая библиотека”.


Продвинутый поиск в Windows мне пришлось изучать только для этого, но How-To Geek имеет очень информативную статью на эту тему. Статья

Также убедитесь, что у вас включен поиск содержимого файлов: wikiHow: How to Make Windows 7 Search File Contents


Дополнение: Я заметил после написания этого, что пост был про Windows XP. Я оставляю это, даже если это не будет принято, для кого-то еще, кто найдёт это полезным (и чтобы я не зря потратил 30 минут).

Открытый соурс DocFetcher проиндексировал для меня более 10,000 epub книг. Процесс индексирования быстрый, и выполнение полнотекстового поиска по всем этим книгам (после индексирования) занимает всего несколько секунд.

Regain (desktop search)

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

Краткое описание

Regain – это поисковый движок на Java, основанный на Jakarta Lucene. Он предоставляет индексирование и поиск файлов для множества форматов (HTML, XML, doc(x), xls(x), ppt(x), oo, PDF, RTF, mp3, mp4, Java). Библиотека тегов облегчает интеграцию результатов поиска на вашу веб-страницу на основе JSP.

Основные функции, которые я нахожу очень полезными:

  • веб-сервер (так что к нему можно получить доступ в сети на всех устройствах в вашей локальной сети)
  • значок в трее (быстрый доступ)
  • кэшированная версия проиндексированного файла (иногда загрузка большого PDF не оправдывает себя)
  • ключевые слова поиска (мощный набор ключевых слов Lucent)
  • дополнительные поддерживаемые форматы (Regain поддерживает I-Filter)
  • поддержка API

Всего несколько снимков экрана:

enter image description here

enter image description here

Copernic Desktop Search

Для полнотекстового подхода выберите либо Windows Search, либо Copernic Desktop Search (50 долларов за полную версию, бесплатная версия (“Lite”) для некоммерческого использования ограничена 75,000 файлами).

Особенно Copernic Desktop Search имеет все необходимые вам возможности. Я тестировал её с 4,000,000 документов, поиск был всё ещё очень быстрым. Она распознает операторы, такие как AND, OR, NOT, NEAR, чтобы поддержать ваши поиски.

Возможно, DocFetcher сможет помочь.

Со страницы домашнего сайта:

Приложение работает на Windows, Linux и Mac OS X и распространяется под Eclipse Public License.

Известные функции

  • Портативная версия: Существует портативная версия DocFetcher, которая работает на Windows, Linux и Mac OS X. Чем это может быть полезно, описано более подробно ниже по странице.
  • Поддержка 64-бит: Поддерживаются как 32-битные, так и 64-битные операционные системы.
  • Поддержка Unicode: DocFetcher обладает надежной поддержкой Unicode для всех основных форматов, включая Microsoft Office, OpenOffice.org, PDF, HTML, RTF и простые текстовые файлы. Единственное исключение – CHM, для которого поддержка Unicode пока отсутствует.
  • Поддержка архивов: DocFetcher поддерживает следующие форматы архивов: zip, 7z, rar и всё tar.* семейство. Расширения файлов для zip-архивов можно настроить, что позволяет добавлять дополнительные zip-основные форматы архивов по мере необходимости. Также, DocFetcher может обрабатывать неограниченное вложение архивов (например, zip-архив, содержащий 7z-архив, содержащий rar-архив… и так далее).
  • Поиск в исходных кодах: Расширения файлов, по которым DocFetcher распознает простые текстовые файлы, можно настроить, так что вы можете использовать DocFetcher для поиска в любом виде исходного кода и других текстовых файлов. (Это хорошо работает в сочетании с настраиваемыми расширениями zip, например, для поиска в исходном коде Java внутри Jar-файлов.)
  • Файлы Outlook PST: DocFetcher позволяет искать письма Outlook, которые Microsoft Outlook обычно хранит в PST-файлах.
  • Обнаружение пар HTML: По умолчанию, DocFetcher обнаруживает пары HTML-файлов (например, файл под названием “foo.html” и папку под названием “foo_files”) и рассматривает пару как единый документ. Эта функция может сначала показаться бесполезной, но оказалось, что это значительно повышает качество результатов поиска, когда вы работаете с HTML-файлами, так как весь “мусор” внутри HTML-папок исчезает из результатов.
  • Исключение файлов из индексации на основе регулярных выражений: Вы можете использовать регулярные выражения, чтобы исключить определенные файлы из индексации. Например, чтобы исключить файлы Microsoft Excel, вы можете использовать такое регулярное выражение: .*.xls
  • Обнаружение типов MIME: Вы можете использовать регулярные выражения, чтобы включить “обнаружение типов MIME” для определенных файлов, что означает, что DocFetcher попытается определить их фактические типы файлов, смотря не только на имя файла, но и просматривая содержимое файла. Это удобно для файлов с неправильным расширением.
  • Мощный синтаксис запросов: В дополнение к базовым конструкциям, таким как OR, AND и NOT, DocFetcher также поддерживает, среди прочего: символы подстановки, поиск фраз, нечеткий поиск (“найти слова, которые похожи на…”), близкий поиск (“эти два слова должны находиться на расстоянии не более 10 слов друг от друга”), увеличение рейтинга (“увеличить рейтинг документов, содержащих…”)

Поддерживаемые форматы документов

  • Microsoft Office (doc, xls, ppt)
  • Microsoft Office 2007 и новее (docx, xlsx, pptx, docm, xlsm, pptm)
  • Microsoft Outlook (pst)
  • OpenOffice.org (odt, ods, odg, odp, ott, ots, otg, otp)
  • Portable Document Format (pdf)
  • EPUB (epub)
  • HTML (html, xhtml, …)
  • TXT и другие простые текстовые форматы (настраиваемые)
  • Rich Text Format (rtf)
  • AbiWord (abw, abw.gz, zabw)
  • Microsoft Compiled HTML Help (chm)
  • MP3 Metadata (mp3)
  • FLAC Metadata (flac)
  • JPEG Exif Metadata (jpg, jpeg)
  • Microsoft Visio (vsd)
  • Scalable Vector Graphics (svg)

Также обратите внимание на Archivarius3000. Он полностью индексирует ваш(и) жесткий(е) диск(и) и затем находит нужные слово(а) или целые предложения в течение секунд.

WinGrep

Вы можете искать по запросу данные слова даже в бинарных файлах (примечание: это может плохо работать с некоторыми PDF, например, от сканеров) с помощью wingrep – он бесплатен и будет искать даже внутри файлов .zip. Он не замедляет компьютер постоянно и не использует много места на диске, так как не строит индексы, но в результате он не работает так быстро. Он бесплатен от Micro$oft, поэтому, вероятно, будет работать на большинстве версий Windows.

Calibre eBook Manager

Не ищет внутри файлов насколько мне известно, но ищет метаданные электронной книги и позволяет редактировать метаданные, но calibre имеет следующие функции:

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

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

Я бы очень рекомендовал его, что бы вы ни выбрали.

.

Ответ или решение

Для задачи поиска текста в огромном массиве файлов, включая различные форматы электронных книг (.txt, .pdf, .epub, .mobi и другие), необходимо подобрать программное обеспечение, которое удовлетворяло бы целому ряду требований, специфических для операционной системы Windows. В данном контексте основная потребность заключается в возможности быстрого и эффективного индексирования и поиска текста внутри файлов, с учетом потенциально больших объемов данных (до 2-3 ТБ) и сотен тысяч файлов, а также в поддержке различных расширений и языков.

Теория

Индексирование и поиск в текстовых файлах большого объема требует значительных вычислительных ресурсов и оптимизированной архитектуры. Программное обеспечение в этой области должно быть способно:

  • Эффективно обрабатывать разные форматы файлов, распознавая текст внутри документов различных форматов.
  • Поддерживать сложные поисковые запросы с использованием логических операторов (AND, OR, NOT) и регулярных выражений (PCRE – Perl Compatible Regular Expressions).
  • Быстро обновлять индексы с учетом изменений в файловой системе, что особенно важно при работе с постоянно изменяющимися данными.
  • Предоставлять удобный графический интерфейс для пользователя, похожий на "Everything", для быстрого доступа к результатам поиска.
  • Иметь поддержку различных языков, в том числе русского, и кодировок (например, KOI-8 и Windows-1251), а также Unicode.

Примеры

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

  1. DocFetcher: Это открытое ПО, способное индексировать более 10 000 книг в формате epub и поддерживающее много других форматов документов. DocFetcher обладает мощным механизмом поиска, который включает поддержку для большинства основных форматов офисных документов, PDF, HTML, а также полную Unicode поддержку. Среди дополнительных функций поддержка архивов и способность работы с различными кодировками текста.

  2. Regain: Это еще одно открытое программное обеспечение, основанное на Java, которое использует Jakarta Lucene для поиска. Оно поддерживает широкий набор форматов и дополнительно позволяет интеграцию результатов поиска в веб-страницы с помощью JSP. Regain также отличается возможностью работы в среде локальных сетей через веб-сервер, что позволяет централизованный доступ к поиску внутри сети.

  3. Copernic Desktop Search: Предоставляет полный спектр возможностей для поиска с поддержкой сложных операторов поиска. Его платная версия рассчитана на работу с до 4 миллионов документов, а бесплатная версия ограничена 75 000 файлами. Это ПО особенно полезно при работе с огромными коллекциями файлов благодаря своей высокой скорости и функциональности.

  4. Archivarius3000: Способен индексировать огромное количество данных и производить быстрый поиск текста даже в архивированных данных. Это ПО поддерживает различные языки и форматы, и обеспечивает быстрый и эффективный доступ к поисковым запросам.

  5. WinGrep и Calibre: Эти программы предоставляют базовые функции поиска и управления коллекциями электронных книг. WinGrep позволяет искать ключевые слова в текстах, но не поддерживает индексирование, делая его менее пригодным для больших объемов данных. В свою очередь, Calibre предлагает обширные возможности работы с метаданными электронных книг, что может быть полезным в качестве инструмента управления библиотекой, хотя и не решает основную задачу текстового поиска.

Применение

Выбор подходящего программного обеспечения зависит от специфики каждого отдельного случая. Например, если основное внимание уделяется индексированию и скорости поиска, то "Copernic Desktop Search" может быть оптимальным выбором. Для тех, кто ищет бесплатные решения с открытым исходным кодом, DocFetcher или Regain могут стать прекрасными вариантами. Если необходима расширенная поддержка различных форматов и локальная сеть распространения поиска, стоит рассмотреть Regain.

Если же вы работаете в условиях, где критично учитывать скорость и легкость использования, особенно на старых системах типа Windows XP, стоит обратить внимание на программы, которые не нагружают систему дополнительной индексацией, как например WinGrep, хотя в этом случае придется пожертвовать скоростью поиска.

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

Оцените материал
Добавить комментарий

Капча загружается...