Четыре Геркулеса

Автор: Владимир Гуриев
Опубликовано в журнале "Компьютерра" №41 от 2 ноября 2004 года.

Есть такое понятие в психологии — неосознаваемая потребность. Сидит, например, в комнате большая компания и скучает. А тут появляется какой-нибудь массовик-затейник и предлагает сыграть в интересную игру. И люди сразу же понимают, что всю жизнь мечтали сыграть именно в эту игру именно в таком составе. В октябре 2004 года в роли массовика-затейника оказался Google, выпустивший бета-версию локального поисковика Google Desktop Search (он же Fluffy Bunny, он же Total Recall).

Продукты, позволяющие осуществлять полнотекстовый поиск на локальном компьютере, выпускаются уже давно, однако пользователей GDS сегодня наверняка больше, чем пользователей всех остальных поисковых систем вместе взятых. Да что там поисковики… Выпусти Google утилиту, выводящую на экран надпись «Hello World», — и то многомиллионный тираж ей обеспечен. И нельзя сказать, что GDS не заслуживает популярности. Но это не единственный и, пожалуй, не лучший продукт из имеющихся в наличии. Желающих расчистить персональные авгиевы конюшни хватает.

Как работает GDS

Наверняка вы уже видели GDS в действии (если нет — хороший обзор опубликован на сайте «КТ» (Правда, сортировка результатов поиска по релевантности в GDS все-таки есть), www.computerra.ru/hitech/36343), поэтому тратить время и место на подробное описание возможностей этого пакета я не буду.

GDS крутится на локальном http-сервере, который обрабатывает только локальные запросы (это ограничение, на самом деле, можно обойти — см. врезку). Таким образом, человек, работавший с Google, попав в главное окно (точнее, на первую страницу) GDS, чувствует себя как рыба в воде — все ему знакомо.

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

Есть и менее заметные на первый взгляд отличия. Помимо файлов на жестком диске GDS индексирует хистори IE и логи AIM (большая часть поисковиков последнего делать не умеет). Кроме того, GDS умеет совмещать на одной странице результаты локального и глобального поиска и пользователь, зашедший на Google.com, на страничке результатов увидит ссылку на найденные локальные документы, отвечающие введенному запросу. Это работает в любом распространенном браузере, хотя официально GDS поддерживает только IE.

Объясняется такая всеядность просто. GDS «цепляется» к стеку TCP/IP, сначала перехватывая сам запрос (и отправляя его копию локальному поисковику), а затем дополняя полученные от Google.com данные перед передачей их браузеру. Проверить это можно довольно просто: GDS распознает браузеры по названию и простое переименование исполняемого файла приведет к тому, что никакой интеграции результатов не будет. За подмену трафика отвечают динамические библиотеки от Google, которые заменяют некоторые библиотеки WinSock 2 (mswsock.dll, rsvpsp.dll).

Перехватив запрос к большому Google, GDS проводит локальный поиск и модифицирует страничку «на лету». Сам браузер о происходящей подмене не подозревает.

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

Почему программисты выбрали именно такой способ интеграции результатов поиска (и вообще, насколько необходима эта интеграция — особенность впечатляющая, но полезная ли?) — не очень понятно. Минусы очевидны: некоторое ПО с GDS вообще несовместимо; какие-то программы придется переустанавливать; какие-то ни окошка не покажут, но работать будут нестабильно. Плюсы тоже есть: многим возможность параллельного поиска нравится, а перехват трафика на уровне транспорта позволяет обеспечить интеграцию результатов не только в IE, но и в Opera или FireFox. В любом случае — решение, как минимум, спорное, хотя большинство пользователей GDS на внутренние механизмы работы поисковика никакого внимания, скорее всего, не обратит.

Минусы GDS

Многие минусы GDS являются продолжением его достоинств. Аскетичный интерфейс Google, безусловно, удобен для веба, но хорош ли он для поиска на локальной машине? Не факт. Впрочем, интерфейс, в конечном счете, это вкусовщина. Но у GDS есть и объективные недостатки:

  • GDS не индексирует изображения.
    Это можно объяснить тем, что у Google есть отдельное приложение для индексации и каталогизации изображений — Picasa (см. «КТ» #559). Кроме того, локальный поиск изображений — дело неблагодарное, поскольку картинки обычно не привязаны к другим документам, а их названия зачастую ни о чем не говорят.
  • GDS не индексирует файлы в формате (подставьте нужный вам формат).
    Это понимаешь не сразу, поскольку с продукцией Microsoft Office GDS справляется отлично. Но отсутствие поддержки pdf и избирательная индексация текстовых файлов (Оговорюсь сразу: с русским языком в текстовых файлах GDS справляется лучше всех программ, рассмотренных в этой статье. По большому счету, этот поисковик — единственный, который их хоть как-то индексирует) (Google индексирует только файлы с известными ему расширениями, и легальных способов как-то изменить этот список не существует) начинает раздражать.
  • GDS умеет индексировать только хистори IE.
    GDS можно научить работать с Mozilla Firefox. Установив расширение Slogger (www.kenschutte.com/firefoxext), можно экспортировать хистори из Firefox в понятную для GDS форму html-файлов. Решение не идеальное, поскольку объем дискового пространства при этом расходуется нещадно (хистори Firefox + вывод Slogger + кэш GDS), но других вариантов пока нет.
  • Google не умеет искать по неполным словам в запросе.
    Так, например, поиск файла с названием «Duran Duran — Bedroom Toys» по «bedr» не найдет ничего. Эта, казалось бы, мелочь может здорово испортить настроение, когда потребуется искать по-русски — о русском языке Google знает немного, поэтому будет искать только точные вхождения, не обращая никакого внимания на то, что существительное может встречаться в другом падеже, а у глагола, к примеру, может оказаться род. При поиске в Интернете этот недостаток нивелируется огромным количеством проиндексированных документов. На локальной машине отступать некуда.
  • Неудобно устроена фильтрация поиска.
    Если нужно провести поиск текста только в файлах Microsoft Word, то в строке запроса следует написать «filetype:word» или «filetype:doc» (xls, excel, ppt, powerpoint, mp3 и т. д.). Вполне эффективно, но неудобно.
  • GDS может установить только пользователь с правами администратора. Работать с GDS, естественно, может тоже только он.
  • Альтернативы

    Замечательно, скажете вы, если GDS настолько плох, что использовать вместо него? Как и в случае с Gmail, Google пришел на уже вспаханное поле — продуктов, превосходящих GDS, много, даже если игнорировать платные пакеты. К сожалению, известные российские разработки из рассмотрения исключаются сразу же. «Следопыт» от MediaLingua бесплатно не распространяется вообще (хотя персональная версия стоит недорого — всего 10 долларов), а бесплатный вариант «Ищейки» от компании iSleuthHound Technologies слишком беден функционально. Украинская META не подходит по тем же критериям. Не подходит и майкрософтовский LookOut, поскольку при всей своей бесплатности является не самостоятельной программой, а плагином к Outlook.

    Впрочем, западные разработчики Лукаутом не ограничились, а наваяли еще BlinkX, Copernic и FileHand [Речь идет о платформе Windows. Для Linux и Mac OS X в ближайшее время станут доступны соответственно Beagle (www.gnome.org/projects/beagle/ ) и Spotlight (www.apple.com/macosx/tiger/spotlight.html)].

    BlinkX

    Главные особенности каждого пакета я указал в таблице, однако к ней необходимы дополнительные пояснения, потому что BlinkX, Copernic и FileHand принципиально отличаются не только от Google, но и друг от друга.

    BlinkX появился только в этом году и сразу стал сенсацией. Оригинальный дизайн и впечатляющие возможности продукта позволили некоторым обозревателям даже сравнить BlinkX с Google, благо у локального поисковика BlinkX есть веб-компаньон — поисковый сервер www.bxfind.com.

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

    Как локальный поисковик BlinkX не впечатляет. Зато к нему в комплекте идет замечательный тулбар, который крепится к окну произвольного приложения и незаметно подгружает заголовки новостей и результаты запросов, связанных с открытым в окне документом. Излишество, конечно, но удобно. Еще одна оригинальная особенность пакета — возможность трехмерной визуализации поиска в вебе. Выглядит довольно забавно, хотя в скучном двумерном отображении ориентироваться все-таки проще.

    Индексировать файлы на лету BlinkX, судя по всему, не умеет, несмотря на то, что на сайте утверждается обратное. По крайней мере, специально созданный в Microsoft Word файл BlinkX не видел довольно долго, хотя Copernic и GDS нашли его моментально.

    И, наконец, самое ужасное — пока что BlinkX не понимает русский язык. Вообще ни в HTML, ни в файлах Microsoft Office. Возможно, во второй версии пакета, которая должна вот-вот выйти, этот недостаток будет исправлен.

    FileHand Search 2.0

    FileHand Search 2.0 явно писали минималисты — работает он споро, а настроек у него немного. Оригинальный подход к цитированию позволяет пролистать содержимое найденного файла в окне поиска.

    Но и этот продукт не идеален. Как и Google, FHS не умеет искать по неполному слову в запросе. Кроме того, FHS не умеет индексировать файлы, в названиях которых есть символы кириллицы. И как-то очень уж странно реализован поиск в PDF. Все обнаруженные на моем компьютере pdf-файлы FHS посчитал пустыми. В FAQ на сайте производителя написано, что FHS не индексирует PDF-файлы, индексация которых запрещена автором. Но не могут же все эти файлы быть защищены — особенно если учесть, что другие продукты их прекрасно индексируют. Например, Copernic Desktop Search.

    Copernic Desktop Search

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

    Как и все остальные, Copernic «не говорит» по-русски, но позволяет вести поиск по неполному слову, что дает возможность более-менее нормально искать в русских текстах, попросту опуская окончания (текстовые файлы на русском, увы, не поддерживаются совсем). Зато поддерживаются кириллические названия и, разумеется, русский язык в файлах Microsoft Office. К сожалению, немного хромает индексация русских pdf — часть из них отображается нормально, часть — кракозябрами.

    Вместо заключения

    Главный соперник GDS — вовсе не Copernic, и не BlinkX, а не вышедший пока локальный поисковик от Microsoft, который компания собирается достроить к концу года. Если Microsoft удастся сделать что-то сравнимое по удобству и качеству с GDS (а это вполне реально — GDS, в отличие от того же Gmail, вовсе не безупречен), то Google придется довольно туго (Впрочем,если судить по (полузаброшенному?) проекту Stuff I’ve Seen, Брин и Пейдж могут пока особенно не волноваться. Кроме того, индексатор (и средства поиска) есть даже в нынешней версии Windows XP, но это настолько удобный инструмент, что о его существовании вообще мало кто знает. А те, кто знает, стараются забыть как страшный сон).

    В любом случае — плох GDS или хорош — выход этого продукта подстегнет другие компании. Бесплатные пакеты наверняка в ближайшие несколько месяцев расширят свою функциональность, а производители платных продуктов, возможно, выпустят облегченные халявные версии. Если уж совсем повезет, то на стремительно уходящий к зарубежным разработчикам рынок обратят внимание создатели российских поисковиков, благо «Яндексу» на подготовку продукта, аналогичного GDS, нужно навскидку недели две (движок полностью готов, в чем читатели «КТ» вполне могли убедиться в прошлом году).

    Осталось только захотеть.

    Расширение функциональности

    Локальный сервер GDS не принимает запросы извне (что очень хорошо, если только вы не жаждете поделиться содержимым своего жесткого диска с окружающими) и не индексирует сетевые диски. Однако бывают ситуации, когда возможность поиска в локальной сети не помешает. Устроить в локальной сетке свой маленький Google.

    Чтобы обойти нелюдимость GDS, нужно установить реверсивный прокси, который будет отдавать трафик GDS удаленному клиенту. На сайте www.projectcomputing.com/resources/desktopProxy  выложено почти готовое решение (по сути его нужно только установить и подправить конфигурационный файл). Того же результата можно добиться, если на машине уже установлен сервер Apache (правда, в этом случае повозиться придется дольше).
     


    <<Чьим расчетам вы больше доверяете: человека или программы?
    Все материалы номера
    Стены из огня >>