Журнал LinuxFormat - перейти на главную

LXF123:Recoll

Материал из Linuxformat
Перейти к: навигация, поиск

Содержание

Recoll Ищем файлы быстро

Выходите, выходите, где бы вы ни были. Шашанк Шарма выясняет, сколько кладов обнаружит Recoll в темных углах вашей файловой системы.

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

К счастью, последнее время автоматический поиск развивался вместе с нашими потребностями и стал неотъемлемой частью современных дистрибутивов Linux. Настольные поисковые машины работают, индексируя все файлы на вашем диске и затем выполняя поиск в этом списке по заданным вами терминам. Потеряли ценное фото? Без паники. Не можете найти любимую музыкальную композицию? Персональный поиск поможет вам.

Ваш личный догляд

Эти поисковые инструменты не только полезны: мир Open Source еще и предоставляет богатый выбор. Пусть Beagle на слуху у всех, но мы хотим представить вашему вниманию другого претендента – легковесный Recoll. За Recoll стоит мощный поисковый движок Xapian, и он, как цифровой детектив в вашей машине, выполняет поручения исключительно по части поиска утерянных данных. После установки Recoll, индексации вашего жесткого диска и запуска программы из меню Приложения > Дополнительно останется ввести ключевое слово в строку поиска и нажать Enter для получения результатов. Блестяще!

Чтобы начать работать с Recoll, нужно его скачать. К несчастью, репозитории программ многих дистрибутивов не содержат последней версии Recoll (1.12), но пакеты для Ubuntu, Fedora, Mandriva и многих других доступны для загрузки с http://www.lesbonscomptes.com/recoll/download.html и, кстати, на нашем LXFDVD. Учтите, однако, что при ручной установке Recoll вы получите длиннющий список зависимостей. Самый простой пункт из него – Qmake, обычно доступный в репозиториях большинства дистрибутивов, и скорее всего он уже установлен на вашей машине. Также вам нужен Xapian-core, если вы планируете компиляцию Recoll из исходных кодов. Наконец, это Qt, но опять же обычно вы можете установить его из вашего репозитория.

LXF123 33 1.jpg При большом количестве вариантов с автодополнением Bash в поисковых запросах лучше не связываться. LXF123 33 2.jpg Recoll — поразительно гибкий и легкий инструмент поиска.

А вот пользователи Ubuntu могут просто взять пакет recoll_1.12.0‑0ubuntu1_i386.deb и установить Recoll, дважды кликнув на нем. Если вам потребуются дополнительные пакеты, они также могут быть скачаны и установлены из репозитория. Теперь запускайте Recoll из меню приложений.

Последнее, что отделяет нас от начала поиска в лабиринтах вашего жесткого диска – индексация файловой системы.

Индексируем файловую систему

Индекс хранится в каталоге ~/.recoll/xapiandb, и для начала нужно вызвать File > Update Index [Файл > Обновить индекс] из главного меню Recoll. Тут вас ждут хорошие или плохие новости – это как взглянуть: Recoll начнет индексацию с вашей домашней директории. Да, со всей целиком, включая смонтированные разделы или общие папки Samba. Этот начальный запуск отнимает много времени даже на очень мощных машинах, зато он очень тщательный. Помните что дистрибутивы, использующие Gvfs – инструмент, заменяющий Gnome Virtual File System – монтируют общие папки в директории ~/.gvfs/, поэтому индексация также затронет смонтированные ресурсы.

К счастью, параметры по умолчанию – это не догма, и легко указать пути, которые следует пропустить при индексации файлов. Для этого выберите Preferences > Index configuration [Настройки > Настройки индексирования]. Вы можете также изменить здесь другие параметры: например, имя директории верхнего уровня, от которой рекурсивно начинается индексация. Исходно это ваш домашний каталог, обозначенный символом ~. Вы можете изменить его, используя вкладку Global Parameters [Общие параметры] диалога настроек: просто щелкните по иконке с плюсом рядом с Top Directories [Начало поиска] и укажите новый каталог верхнего уровня.

Скорая помощь

Qt 4.4.0 несовместим с последней версией Recoll. Используете релиз 4.3.x или более старшие, – 4.4.1 и старше.

Для пропуска директории ~/.gvfs/ или любой другой, которую вам незачем индексировать, щелкните по иконке с плюсом рядом со Skipped Paths [Пропускать] и задайте путь к директории в появившемся диалоге. Закончив, нажмите OK. Повторите процедуру для всех директорий, которые вы хотите держать подальше от не в меру любознательного Recoll. Досадно, что при вводе исключений нужно набирать полный путь вручную. Эта операция не смертельна, но достаточно муторна.

Раскапываем файлы

После установки Recoll и подготовки начального индекса настает пора поискать какие-нибудь файлы. Панель поиска вверху интерфейса будет вашей исходной точкой. Вы можете также использовать выпадающий список слева для задания, по чему вы будете искать: Any Term [Любое слова], All Terms [Все слова], File Name [Имя файла] или Query Language [Язык запросов]. Для ограничения поиска только текстовыми или любыми другими типами файлов, просто поставьте соответствующую галочку в поле под строкой поиска. Например, если вы хотите искать в почте, выберите Messages [Сообщения].

При вводе запроса следует помнить, что разделителем в перечне искомых строк в Recoll служит пробел; поэтому запросы, содержащие его, надо заключать в кавычки. Так, если вы разыскиваете Pink Floyd и введете запрос без кавычек, то можете не получить нужный музыкальный файл. Помните также, что в запросах допускаются символы- маски *, ? и [ ]. Здесь применяются стандартные правила, а именно: * означает любое количество символов, ? – любой одиночный символ, а квадратные скобки задают набор символов.

Если вы привыкли к автодополнению Bash, то сочетание клавиш Esc+Space будет в Recoll вашим любимым. Их нажатие покажет вам возможные поисковые запросы на основе уже набранных символов. Например ввод pyt и нажатие Esc+Space отобразит список возможных терминов типа Python, Python2, pytype, python-fu и т. д.

Навигация по результатам

Если ни один из предложенных вариантов не совпал с нужным, просто игнорируйте его и вводите оставшуюся часть слова. Recoll будет отображать все, что удовлетворяет условиям поиска, в окне результатов. В зависимости от вашего запроса и количества результатов, вы можете получить не одну страницу для выбора нужного вам варианта. Для перехода на следующую страницу нажмите на ссылку Next Page [След. страница] справа вверху панели результатов.

Каждый результат поиска сопровождается небольшим фрагментом файла, но этого не всегда достаточно, чтобы решить, действительно ли вы нашли искомое. Тогда можно нажать на ссылку Preview [Предв. просмотр] рядом с записью в списке результатов и проглядеть содержимое файла во внутреннем просмотрщике документов Recoll.

Мало того, Recoll позволяет редактировать найденные файлы «на месте». Щелкните на результате поиска правой кнопкой мыши, выберите Edit [Редактирование], и Recoll откроет документ в соответствующем редакторе, ассоциированном с типом файла.

По умолчанию Recoll выводит восемь результатов на страницу, используя HTML, но вы можете настроить это как вам удобно. Обратитесь к Tools > Query Configuration [Инструменты > Конфигурация] для открытия диалога User Preferences [Предпочтения] и приступайте. В том же окне можно настроить приложения, используемые для редактирования файлов различных типов.

Скорая помощь

Помещение мыши поверх параметра настройки вызовет появление соответствующей подсказки

Параметры индекса

Персональные настройки на этом не заканчиваются: вы также можете указать Recoll способ обращения с индексируемыми файлами. Чаще всего применяется параметр Skipped Names [Пропускаемые имена]. Проиллюстрируем, зачем он нужен, используя наш любимый пример – музыкальные файлы. Пусть у вас большая коллекция композиций, которая хранится в директории ~/Music. Коллекция содержит файлы форматов OGG, MP3 и RM, но что делать, если какой-то из форматов вы индексировать не хотите? Тогда просто выберите вкладку Local Parameters [Частные параметры] в верху окна Preferences [Настройки]. Теперь щелкните по иконке с плюсом рядом с Skipped Names и наберите *.mp3, аналогично добавлению путей исключения. Нажмите OK, и при следующем обновлении индекса Recoll опустит все MP3‑файлы. В список можно вставить и другие имена, в зависимости от ваших требований.

LXF123 34 1.jpg Вкладка Local Parameters помогает настроить дерево поиска под себя.

Правда, Skipped Names применяются только к директориям верхнего уровня. Это означает, что если вы вставите *.mp3 в список Skipped Names, то MP3‑файлы, сохраненные во вложенных каталогах, будут проигнорированы. Это может представлять проблему. Например, допустим, что вы не хотите индексировать MP3‑файлы в вашей директории ~/Music, зато проиндексировали бы большую коллекцию файлов в каталоге ~/podcasts. В нашем примере директорией верхнего уровня является домашняя. С текущими настройками MP3‑файлы и в директории ~/Music, и в каталоге ~/podcasts индексированы не будут. Для исправления данной проблемы нужно обеспечить индексирование всех MP3‑файлов вне директории ~/Music. Чтобы сделать это, нажмите на кнопку с плюсом рядом с заголовком Customised Subtrees [Каталоги с особенностями] вкладки Local Parameters и выберите директорию ~/Music. Теперь MP3‑файлы вне директории ~/Music будут индексироваться и включаться в список результатов.

Recoll умеет даже индексировать сжатые файлы и архивы. Внизу вкладки Local Parameters вы можете задать Maximum Compressed File Size (in kilobytes) [Предел размера сжатого файла (в килобайтах)]. По умолчанию он установлен в ноль, что означает пропуск сжатых файлов. Вы можете захотеть изменить это значение, потому что приложения сохраняют в сжатом виде файлы журналов, которые могут пригодиться вам среди результатов поиска. Существует еще много параметров настройки, доступных из вкладки Global Parameters [Общие параметры], например, задание уровня подробности журнала, определяющего, сколько информации сохраняет в нем Recoll, но, к несчастью, здесь нет места для описания всего этого подробно. У большинства из пунктов названия говорят сами за себя, но если вы не уверены, что они делают, обратитесь к документации.

Самый актуальный вопрос сейчас стоит так: как часто вы должны обновлять индекс? Если вы планируете собирать Recoll вручную, то можете настроить его на выполнение индексации в режиме реального времени. В противном случае, вы ограничены периодической индексацией.

Выбор вида индексации

Обновление индекса выполняется просто: как только это потребуется, нажмите File > Update Index [Файл > Обновить индекс]. А ну как индекс не обновлялся уже давно? Или – что будет, если вы переместили и поудаляли кучу файлов уже после того, как обновили индекс? Этого кошмарного сценария можно избежать с помощью периодической индексации, и тут нам поможет Cron.

Форматы-экзоты

Recoll строит индекс не для всех типов файлов. Для индексации PDF, MP3, RTF и MS Office понадобятся дополнительные пакеты. К ним относятся: pdftotext (часть Xpdf), antiword (для файлов MS Word), catdoc (для Excel и PowerPoint), libpwd (для файлов Wordperfect), id3info из пакета id3lib для файлов MP3 и Exiftool для изображений.

Увы, не все они доступны в программных репозиториях популярных дистрибутивов. Без них будут индексироваться только имена файлов, и Recoll не сможет выводить фрагменты или выполнять предпросмотр файлов.

Для создания задания Cron по обновлению индекса раз в час, добавьте в crontab

0 * * * recollindex

Если вы хотите задать другие параметры обновления индекса, создайте в Cron собственную запись. Например, для обновления индекса каждый полдень и затем в 17 часов добавьте в crontab следующие строки:

следующие строки:

0 12 * * recollindex
0 17 * * recollindex

Альтернатива настройке заданий Cron – индексирование в реальном времени, то есть при любом изменении файлов на диске индекс будет обновляться автоматически. File Alteration Monitor (fam) и inotify – это два инструмента, которые постоянно наблюдают за изменениями в файловой системе. При сборке Recoll вы можете включить поддержку одного из них

-- with-fam

или другого

-- with-inotify

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

Тщательнее надо

Итак, мы разобрали введение в простейший поиск, навигацию по страницам с результатами и индексацию экзотических файлов (см. Форматы-экзоты). Мы также вскользь упомянули, как использовать шаблоны для поиска в индексе файлов. В зависимости от числа проиндексированных файлов, размер самого индекса может чересчур разрастись и потребует немалого времени на обработку. Чтобы вы не ждали, затаив дыхание, когда же появится результат, Recoll предлагает некоторые сложные функции поиска, позволяющие сузить его круг.

LXF123 35 1.jpgРасширенный поиск позволяет применять различные условия, типы файлов и места для уточнения результатов.

Лучше всего здесь, когда при каждом выполняемом поиске задаются ключевые слова и затем по ним выполняется фильтрация – All Of These [со всеми словами], None Of These [без этих слов], Any Of These [с любыми словами] и другими похожими условиями. Диалог Advanced Search [Сложный поиск] (выберите Tools > Advanced Search) разбит на четыре части. Первая предлагает вам текстовое поле, в которое вводятся ключевые слова или фразы (в кавычках), как в случае использования нескольких условий в поле поиска. Во второй части указывается, хотите ли вы получить результат, основываясь на всех введенных условиях, на любом из них, или результат не должен содержать ни одного из них. Recoll воспринимает каждое слово как отдельное условие, и в одном поисковом запросе их можно задать несколько. Например, вы можете захотеть получить список всех дорожек Робби Уильямса [Robbie Williams], исключая Angels или «Rock DJ». Выберите ваши условия щелчком на выпадающем списке All Clauses [Все поля], следующим за текстовым полем.

Третья часть поможет сузить поиск, используя MIME-типы. Здесь вы имеете возможность сказать Recoll, какие типы файлов игнорировать при поиске: скажем, если вы ищете PDF-файлы, пусть игнорирует все остальное. Или – искать только файлы MS Office, будь то файлы Word, PowerPoint или Excel, опуская все прочие типы. Для игнорирования типа файла, выберите его в списке и нажмите кнопку Sel ---- > [Эти ----- >]. Выбранный тип файла переместится в список Ignored File Types [Игнорируемые] справа в диалоговом окне. Повторите эту процедуру, переместив все типы файлов, которые надо игнорировать, в список Ignored File Types. Альтернатива – щелкнуть по флажку By Categories [По категориям] и переместить ненужные категории в список Ignored File Types. Категории следующие: Text [тексты], Spreadsheet [таблицы], Message [сообщения], Media [мультимедиа] и Presentation [презентации].

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

Еще больше параметров

Вы было подумали, что сюрпризы Recoll уже исчерпаны – а вот и нет. Первым делом обратим ваше внимание на корни слов. Эта вещь включена по умолчанию и означает, что когда вы ищите по условию ‘rock’, Recoll отобразит результат, основываясь на нем как базовом слове, и вы увидите результаты и для rocking, rocks, rocker и т.д.

Далее идет инструмент Term Explorer [Навигатор терминов], предоставляющий четыре дополнительные опции: wildcards [шаблоны], regular expressions [регулярные выражения], stem expansions [раскрытие основы] и phonetics [фонетика]. Наиболее интересен здесь параметр фонетики: вводите свой запрос, не заботясь о правописании, а Recoll выкопает в индексе слова, сходные по звучанию. Для этого Recoll требуется пакет Aspell. Term Explorer запускается из Tools > Term Explorer.

Финальное условие

Мы скромно пропустили в описании условий в Тщательнее надо

варианты This Phrase [фраза] и Terms In Proximity [слова вблизи], потому что решили припасти их на сладкое. При заполнении условия фразы или близости вы также можете задать степень отклонения в числовом поле. Например, если вы ищете «Beatles hits» с условием This Phrase и отклонением, равным нулю, поиск обнаружит совпадения с «Beatles hits», но не «Beatles greatest hits». Чтобы учесть это, установите отклонение в 1; но в случае «greatest hits Beatles» совпадения не произойдет. При поиске с Terms In Proximity, где отклонение по умолчанию выставлено в 10, поиск по «Beatles hits» найдет не только все вышеприведенные отрывки, но и «hits from the great rock band The Beatles».

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

Персональные инструменты
купить
подписаться
Яндекс.Метрика