Индексация и поиск в Ubuntu посредством Recoll

Время от времени у каждого пользователя возникает потребность вспомнить, в каком именно файле содержится та или иная конкретная информация. Конечно, можно тривиально поискать её, просканировав папки системными средствами или утилитами вроде searchmonkey, но это долго. Поэтому продвинутые пользователи предварительно индексируют свои разделы и папки, чтобы быстро выйти на нужный источник: документ, письмо, справку и т.д. Я пользовался разными индексаторами: Google Desktop, Beagle, Tracker, но они не очень удовлетворяли меня: или работают медленно, или сильно грузят систему, или индексируют/ищут не то и не так, как хотелось бы. И вот, наконец, Recoll. Он, как мне кажется, по удобству и по другим показателям превосходит вышеперечисленные индексаторы-поисковики. Далее для тех, кто читать пространные мануалы не очень любит (а кто любит-то).

Почему именно Recoll? Во-первых, он есть в репозиториях Ubuntu. Во-вторых, быстро работает и грузит процессор максимум на 2/3, а не полностью. В третьих, индексирует любые ФС и любые файлы, где может содержаться текстовая информация. В четвёртых, имеет очень неплохой GUI, хотя его CLI выглядит всё же мощнее. После установки программы командой

sudo apt-get install recoll

отправляемся в папку /usr/share/applications, отыскиваем значок «Recoll» («шаховница» такая) и копируем его на рабочий стол. Запускаем. Вначале программа сообщит вам, что не может найти, где находится база данных. Нажмите отмену. Зайдите в глобальное меню в раздел «Настройки» и в подраздел «Настройки индексирования». В строке редактирования «Каталог базы данных» впишите магическое слово xapiandb и нажмите OK. В скрытой папке .recoll будет создана папка с именем xapiandb, где и будет находиться база, содержащая результаты индексации. Вы можете указать и свой путь к базе данных, но по-любому без настройки этого параметра индексатор-поисковик работать не будет.

Как известно, не очень гордая Ubuntu прекрасно ориентируется во всех «виндовых» дисках, разделах и папках, а также в файловых системах других ОС, даже таких экзотических, как «Хайку». Для примера проиндексируем какой-нибудь «виндовый» раздел. Сначала этот раздел надо смонтировать. Конечно, монтирование можно выполнить и командной строкой, но гораздо приятнее сделать это штатным файловым менеджером Ubuntu «Наутилус». «Виндовый» раздел (да и любой неродной) при этом будет автоматически монтироваться в папку /media, а созданной в ней линуксной папке, с которой ассоциируется этот раздел, будет присвоен уникальный идентификатор. Монтируем:

Запускаем Recoll. В глобальном меню выбираем «Настройки» – «Настройки индексирования», в открывшемся окне жмём кнопку с плюсом под меткой «Индексируемые папки». С помощью диалогового выбора настраиваем папку, которую нужно индексировать, в данном случае это /media/General

Запускаем индексирование, для чего в глобальном меню «Файл» жмём «Обновить индекс». Внизу экрана в строке состояния основного окна должно пойти отображение процесса индексирования, а строка меню «Обновить индекс» должна замениться на «Прервать индексирование». Программа индексирует очень быстро, так как в Линуксе информация на жёстких дисках практически не подвержена фрагментации (да-да, линуксоиды не озабочены такой операцией, как «дефрагментация»). Скорость индексации – примерно двести файлов по несколько мегабайт в секунду на средненьком двухъядернике по 1,8 ГГц/ядро. Индексатор работает всеми ядрами, но интеллигентно: пока одно ядро загружено на 100%, другое разгружается до 20%, и пользователь имеет возможность выполнять свои задачи. Например, когда я сейчас пишу эту статью, индексируется 500-гигабайтный «виндовый» NTFS-раздел, поименованный, как General. Какая это буква в Windows-нотации – совершенно безразлично. Когда индексирование закончится, в строке состояния появится сообщение «Индексирование закончено», а в глобальном меню в разделе «Файл» снова появится подраздел «Обновить индекс». Нагрузка на процессор также резко упадёт. Для информации: флэшка 16 Мбайт индексируется за пару минут.

Фишка в том, что при индексировании в базу данных добавляются результаты просмотра файлов тех папок, которые вы только что индексировали, предыдущие индексы для других папок остаются в базе нетронутыми и по-прежнему могут быть использованы для поиска. Так как Линукс присваивает индивидуальные идентификаторы смонтированным (читайте – «вставленным») флэшкам, то вы можете поочерёдно проиндексировать все свои съёмные носители через одно и то же гнездо USB. Чтобы потом произвести поиск информации на флэшке, вам вовсе не обязательно помнить, в какое именно гнездо вы вставляли флэшку при индексации данных. Важно только, чтобы вы не удаляли проиндексированные папки из списка подлежащих индексации. Точно так же вы можете индексировать на своём компьютере содержимое сетевых и облачных папок. По сравнению с поиском через индексы, сохранённые на сервере сети, на вашем компьютере поиск нужных файлов по их содержимому будет осуществляться намного быстрее – практически мгновенно.

Поиск проиндексированной информации осуществляется с помощью GUI.

Разобраться с заданием поиска настолько просто, что и описывать, собственно, нечего. Самое важное: вы можете добавлять критерии поиска кнопкой «Добавить поле», выбрать из выпадающего списка критерий и описать его справа в строке редактирования. Результат поиска выглядит вот так:

Программа неплохо продумана в плане безопасности. Только пользователь может получить доступ к своим индексам. Базу данных пользователь может держать где угодно, в том числе и на съёмном носителе из соображений безопасности или удобства. Можно также настроить Unity-линзу, чтобы лишний раз не запускать Recoll. О том, как это сделать, читайте здесь.

Разумеется, индексирование может быть и фоновым, и автоматическим, Однако, для настроек скрытого индексирования реального времени используется CLI. Если будут пожелания от «неанглоязычных» читателей «Вестей» (интересно, а есть ли такие?), я в одной из своих следующих статей попробую рассказать об этом по-русски и подробно. Забегая вперёд, скажу только, что демон непрерывного фонового индексирования, который умно и быстро отслеживает все изменения в проиндексированных папках, запускается командой

recollindex -m

Версия для печатиВерсия для печати

Рубрики: 

  • 1
  • 2
  • 3
  • 4
  • 5
Всего голосов: 0
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!

Комментарии

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

Аватар пользователя mike

Спасибо за оценку; надеюсь, кому-нибудь написанное пригодится. И нисколько не обижался на вас --  прекрасный пол так эмоционален! 

LINUX, дружба, жвачка?

Аватар пользователя mike

Конечно!