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

LXF126:Сравнение

Материал из Linuxformat
Перейти к: навигация, поиск
Каждый месяц мы сравниваем тысячи программ – а вы можете отдыхать!

Содержание

Сравнение: Настольные поисковики

Ознаменуют ли эти продвинутые инструменты кончину grep? Выясняет Шашанк Шарма.

Инструменты типа grep, find и awk часто выручают бесшабашных любителей Bash при поиске файлов, зарытых под посторонними гигабайтами. Но поскольку типичный дистрибутив Linux и сам замахивается на гигабайты дискового пространства, нетрудно представить, что поиск файлов со временем только усложнится.

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

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

Поэтому большинство поисковиков умеют читать метаданные файлов, предоставлять выдержки из текста документа, показывать разрешение изображений (а также миниатюры) и выводить другие детали. Стемминг – то есть если вы ищете «бит», инструмент находит соответствие с «Битлз», «битый» и т.д. – это стандарт. Для большинства настольных поисковиков характерен удобный графический интерфейс, но многие поставляются также и с набором приложений командной строки для индексирования и поиска по файловой системе.

Про наш тест…

Трудности установки и завышенные требования к памяти – не то, чем характерны поисковики нашего теста: 512 МБ ОЗУ хватило большинству из них. Поскольку размер индекса растет с числом файлов, нам нужна утилита, умеющая искать все необходимое быстро и точно.

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

Beagle

Все еще носит клеймо пожирателя памяти, но становится классикой.

Дискуссиям о привычке Beagle к пожиранию памяти, длящимся с давних славных дней Ричарда Бертона [Richard Burton], пора бы прекратиться. Так или иначе, это яркий пример приложения, которому мешают обветшалые ярлыки, хотя бы и неточные. Стоит ли удивляться, что обильные сообщения на форумах и блогах о его ненасытном аппетите по части памяти распугали немало потенциальных пользователей? Последняя версия, 0.3.9, доступна в репозиториях почти всех дистрибутивов.

Контроль над тем, какие папки индексировать и какие пути игнорировать, стал стандартом в большинстве настольных поисковиков, и здесь Beagle не разочаровывает. Зато, в отличие от большинства других инструментов, он также позволяет индексировать электронную почту, мгновенные сообщения, RSS-ленты, адресную книгу и многое другое, да еще и историю серфинга и закладки вашего браузера. А со своей встроенной поддержкой Inotify, Beagle обновляет индекс при обнаружении любых изменений в файлах или каталогах.

По умолчанию, Beagle индексирует все содержимое вашей домашней директории, кроме *~, ~.tmp и тому подобных путей. Чтобы изменить это поведение, запустите Beagle, обычно значащийся как Поиск [Search] в меню Приложения > Дополнительно [Application > Accessoires], и перейдите в Поиск > Настройки [Search > Preferences]. Из Индексирования [Indexing] окна Настройки поиска окна можно указать охватываемые утилитой каталоги, а также исключаемые пути.

Наряду с графическим интерфейсом, Beagle имеет обширный набор инструментов командной строки, пригодных для создания индекса и поиска файлов. Команда beagle-search .txt запускает графический интерфейс и показывает результаты поиска для .txt. Альтернатива – запуск beagle-query, для вывода результатов прямо в терминал.

Интерфейс браузера

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

beagle-config Networking WebInterface true

Доступ к экспериментальному web-интерфейсу предоставляется на http://localhost:4000. Предполагалась доступность и с других компьютеров в сети, но... это пока эксперимент.

При использовании настольных поисковиков помните, что лишь немногие из них отличают имена файлов от типов, так что запросы “mp3” и “.mp3” дадут весьма непохожие результаты.

Beagle может извлекать текст и метаданные из множества типов файлов, включая документы Office, простой текст, HTML, DocBook, различные изображения и аудио-форматы, и многое другое. При поиске файлов можно уточнить параметры запроса в одной из 14 доступных категорий: фотографии, медиа, файлы, архивы, письма и т. д. Выберите тип поиска в выпадающем списке, чтобы сузить критерии. Beagle отображает всего восемь элементов на странице, и лучше максимально уточнить критерии поиска, чем щелкать по крошечной синей стрелке навигации, надсажая свою мышь.

Если при поиске категория не указана, Beagle все равно рассортирует результаты, сгруппировав вместе изображения, документы, папки и т. д. При избытке результатов вы затем сможете перемещаться постраницам в каждой из категорий.

Beagle также умеет выполнять поиск внутри файлов. Щелчок по найденному файлу покажет вам совпадение или кусок текста, имеющий отношение к делу. Это не относится к PDF-документам, для которых Beagle даст вам только миниатюру.

Интерфейс Beagle малоэстетичен, но настоящая красота кроется в его комплексных опциях поиска. Можно, например, предварять термины знаком «минус», чтобы исключить их из своего запроса, или использовать в запросе оператор OR (ИЛИ), или оператор date для проведения поиска некотором в диапазоне дат.

Google Desktop

Фамильярность порождает уверенность. Но работает ли это?

Для большинства дистрибутивов релиз-циклы – это все; но Google Desktop, кажется, был доступен через интернет-репозитории ПО вечность назад. Сейчас вам нужно всего лишь направиться на домашнюю страницу проекта и загрузить последнюю версию. Там даже найдется 64‑разрядная редакция. Мы добавим Google Desktop очков и за предоставление двоичных пакетов в форматах RPM и Deb.

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

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

Удобный апплет поиска вызывается двойным нажатием клавиши Ctrl – и вы можете поместить его где-то на вашем рабочем столе для быстрого доступа. При наборе слова в поисковом апплете результаты запроса будут отображаться там же. Клавиши стрелок переместят вниз к искомому файлу; чтобы открыть его, нажмите Enter. Затем вы можете нажать на Просмотреть все результаты в браузере [Show All Results In A Browser], чтобы открыть новую вкладку Firefox, если он запущен. Если нет, Google Desktop откроет Firefox для вас.

Google предлагает массу различных сервисов, таких как Группы, Карты и Новости, и можно настроить апплет для поиска указанного термина в любом из них. Нажмите правой кнопкой мыши на иконке в системном лотке и выберите Тип поиска по умолчанию [Default Search Type] в Интернете, на Компьютере, в Новости, Группах, Изображениях и даже Мне повезет.

При поиске на рабочем столе результаты отображаются в браузере, как при обычном поиске Google. Небольшая иконка слева от каждого результата отражает тип файла, чтобы вы не путали свои MP3 с электронными письмами. Для текста и PDF-файлов под результатом приводится небольшой отрывок. Нажатие на файлы приведет к их открытию в подходящих приложениях. Письма открываются в самом браузере, но вы также можете использовать Ответить через Gmail [Reply With Gmail] и Читать в Gmail [Read In Gmail].

Мне повезет

Расширенный поиск выполняется щелчком правой кнопки мыши на иконке приложения и выбором Показать домашнюю страницу [Show Home Page]. Затем щелкните по ссылке Расширенный поиск [Advanced Search]. Поиск можно ограничить заданным типом файлов. Например, для поиска ODT-файлов активируйте радиокнопку Файлы [Files] и выберите OpenOffice.org Writer из выпадающего списка.

Несмотря на умный дизайн, Расширенный поиск имеет одну проблему: его нельзя использовать, чтобы увидеть список всех файлов определенного типа. Невзирая на категории и типы, всегда нужно вводить поисковый запрос. И если вы хотите получить список всех PNG- или MP3‑файлов на вашем компьютере, просто задайте в поиске “.mp3”, не заходя в раздел Расширенный поиск.

В Google Desktop есть функция, которой лишены его конкуренты: в Google она называется «версией», и мы считаем, что это блестящая идея. При каждом редактировании файла, Google Desktop создает и кэширует копию, и к ней можно получить доступ. Нажмите на ссылку Сохранено в кэше [Cached] в правом нижнем углу результата, чью кэшированную версию надо просмотреть. Отобразятся все сохраненные версии; самая новая будет наверху.

Google Desktop можно настроить так, чтобы он больше не индексировал удаленные файлы, но тогда утратится шанс спасти данные, стертые по ошибке.

Раз уж Google Desktop также доступен на Windows и Mac, логично сравнить характеристики на разных платформах. Хотя Linux-версия работает безупречно, имеет удобный интерфейс и умеет индексировать электронную почту и историю браузера, немного обидно, что она лишена роскоши проприетарных ОС, даже спустя два года после выхода Google Desktop 1.0.

Tracker

У этих запасливых парней из Gnome есть все.

Вот еще один инструмент настольного поиска – и с примочкой для вашего системного лотка, но только если вы работаете под Gnome. Пользователи KDE могут поохотиться за ним в любимом K-меню. Tracker, как и большинство участников данного Сравнения, еще не дорос до версии 1.0, но он уже сейчас надежен, элегантен и эффективен.

Доступный в репозитариях большинства дистрибутивов, Tracker сперва кажется немного чудаковатым. А как иначе вы бы определили индексатор файлов, в котором индексирование по умолчанию отключено?

Открытие окон настроек и включение индексирования выполняются командой tracker-preferences. В отличие от других инструментов, Tracker настраивается на индексацию определенных папок, но не на активный их просмотр. То есть при изменении файлов, находящихся в папке, которую Tracker не индексирует, изменения не будут отражены в индексе.

Окно настроек состоит из нескольких вкладок, каждая из которых связана с различными аспектами Tracker. Можно определить пути и шаблоны, которые вы хотите игнорировать в Tracker, во вкладке Файлы [Files], и включить индексирование электронной почты для Evolution на вкладке Email. Будущие версии будут поддерживать индексацию закладок браузера, истории, заметок, задач и т. д.

Отображение по умолчанию 10 результатов на странице в Tracker изменить нельзя, но вам помогут кнопки Следующая [Next] и Предыдущая [Previous], служащие для прокрутки страниц. При нажатии на результат Tracker показывает подробную информацию о файле – скажем, его размеры, если это изображение.

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

Strigi

Тут, ребята, ловить нечего.

Самый быстрый и компактный инструмент настольного поиска (по словам разработчиков Strigi) нас разочаровал: мы ни разу не дождались корректного результата по своему запросу. Авось вы будете счастливее...

Устанавливается он достаточно легко, из репозиториев большинства дистрибутивов. Задуманный как графическая замена grep и find, из-за своих недостатков Strigi стал аутсайдером нашего списка.

Strigi вызывается командой strigiclient или через диалог Alt+F2. По умолчанию он не создает записи ни в каком меню, а папки начинает индексировать при нажатии кнопки Запуск индексирования [Start Indexing]. В зависимости от числа файлов, размер индекса может быть очень велик, и за ним нужно приглядывать.

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

Худшая проблема Strigi в том, что он показывает только первые 10 результатов поиска по запросу; и если найдется 55 совпадений, их список целиком вам не видать. Необходимость бесконечно уточнять параметры поиска, чтобы искомый файл попал в первые 10 результатов, уничтожает весь смысл настольного поисковика. Даже профаны в командной строке вряд ли будут менее удачливы, обратившись к find и grep.

Для инструмента, который единым духом увеличивает размер индекса до 200 MБ за полчаса, тот факт, что он неспособен найти нужный вам файл, просто ошарашивает.

Recoll

Быстрый и надежный, но не лишен недостатков.

Обладая мощью поискового движка Xapian, легкий Recoll способен стать вашим любимым инструментом, если вы сумеете установить и запустить его. В репозиториях почти всех дистрибутивов Recoll отсутствует, а его список зависимостей отпугнет некоторых пользователей. Для начала вам понадобится xapian-core, плюс Qmake и Qt – к счастью, они-то доступны легко. Быть бы у Recoll 10 штрафным очкам, кабы не двоичные пакеты для Ubuntu, Fedora, Mandriva и других дистрибутивов Linux.

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

Помимо строки поиска в верхней части интерфейса,вы можете использовать ключевые слова в выпадающем списке, для выбора одного из терминов, всех терминов, имени файла и языка запроса. Поиск можно ограничить текстовыми файлами или любым другим типом MIME, щелкнув по соответствующей радиокнопке под полем поиска. Например, разыскивая сообщение электронной почты, выберите Сообщения [Messages]. При поиске файлов в индексе допускается использовать метасимволы *, ? и квадратные скобки. Это, наряду с функцией автозаполнения (доступна при нажатии Esc+пробел), дает Recoll небольшое преимущество по сравнению с другими инструментами. Например, выбор «pyt» и нажатие Esc+Space отобразит список возможных терминов типа Python, pytype и т. д.

Пойди найди

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

Чтобы сузить область поиска, Recoll позволяет определить ключевые слова, а затем фильтрует их по Все сразу [All Of These], Ни одно [None], Любое из [Any] и другим подобным условиям с помощью усовершенствованного диалогового окна поиска. Можно также ограничить область поиска конкретным типом MIME: например, PDF или электронными таблицами. Наконец, если вы знаете примерное местоположение файла, укажите поиск в конкретных подпапках.

Большинство других инструментов постоянно следят за вашим диском и сохраняют индекс при любых изменениях, а Recoll по умолчанию создает только статический индекс. А значит, при желании получать свежие результаты поиска вы должны вручную обновлять индекс, нажав Файл > Обновить. Впрочем, периодическую индексацию сделает за вас Cron, при соответствующей настройке. Это и благо, и бремя: системные ресурсы не тратятся на постоянные попытки поддерживать индекс в актуальном состоянии, но по сравнению с другими инструментами требуются лишние действия.

Луч надежды, по крайней мере для желающих скомпилировать Recoll самим, дают два инструмента: FileAlterationMonitor (Fam) и Inotify, они следят за файловой системой и ее изменениями. При компиляции Recoll можно включить поддержку любого из них с --with-fam или --with- inotify.

Recoll не создан для индексации всех типов файлов. Для должной работы с PDF, MP3, RTF, MS Office и нескольких других экзотических форматов придется установить дополнительные пакеты, такие как Antiword (для MS Word) и Catdoc (для MS Excel и PowerPoint). Без этих инструментов индексироваться будут только имена файлов, и Recoll не предоставит фрагменты или функцию предпросмотра.

Вердикт

Recoll 9/10

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

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

Топ-три

Хотя мы не избалованы выбором, было нелегко распределить финальную тройку, потому что три претендента на пьедестал Google Desktop, Beagle и Recoll находятся в жесткой конкуренции. Будем надеяться, что это способствует развитию.

Но сначала рассмотрим поисковики, не попавшие в тройку. Худшее, что можно сказать о Strigi – отсутствие навигации по страницам. Зачем нужен инструмент, скрывающий результаты поиска? А вот Tracker, однако, имеет все задатки претендента. Возможность указывать, какие каталоги смотреть и индексировать означает меньший размер индекса, поэтому он получает 6/10, несмотря на неполадки с тэгами и медленный запуск.

На последнем месте в тройке финалистов – Google Desktop. Эта программа получает бонусные баллы за использование браузера для отображения результатов, но расширенный раздел поиска все еще требует улучшений. Функция автоматической подсказки при поиске полезна, хотя ее ограничение показом только верхних шести результатов в апплете по умолчанию – явный огрех дизайна.

Затем, под номером два, идет несправедливо оболганный Beagle. Одна из сильных сторон этого инструмента – малый размер индекса, особенно по сравнению с Strigi и Google Desktop. При добавлении web-интерфейса будущее Beagle видится весьма светлым.

Невзирая на мощную конкуренцию со стороны Beagle, особенно по числу поисковых параметров, Recoll удается уцепиться за первое место. Заставлять пользователя индексировать каталоги вручную вовсе не глупо. Тому, кто убежден, что настольные поисковики съедают многовато ресурсов, он дает возможность индексировать систему в удобное для него время. И это должно помочь Recoll в привлечении пользователей, которые обычно сторонятся подобных инструментов. Определение ключевых слов для поиска и избегания при поиске помогает Recoll всякий раз точно найти местонахождение файла. Другим инструментам не мешает тоже обдумать включение этой функции.

Таблица характеристик

Название Версия Применение шаблонов Поиск в архивах Поиск в PDF Поиск в OGG/MP3 Поиск в почте Поиск в закладках и истории браузера Поиск в файлах OOo Стемминг Тэги пользователя Поиск в резервных копиях
Google Desktop 1.2.0 X Только по имени файла V V V Частично V V X V
Tracker 0.6.93 V Только по имени файла V V V X V V V X
Strigi 0.6.3 V X X X X X X X X X
Beagle 0.3.9 Частично Только по имени файла V V V V V V X X
Recoll 1.12.1 V Только по имени файла V V V V V V V V
Персональные инструменты
купить
подписаться
Яндекс.Метрика