Добрый день, дорогие друзья. Сегодня продолжу тему использования ИТ в организациях. Как и в прошлый раз, основная тема — оптимизация работы сотрудников, максимальная автоматизация и, как следствие, сокращение затраченного времени. Итак…
Постановка задачи
Имеется компьютерная сеть организации. Если сотрудников достаточно много, неизбежно возникают различные «хранилища» — документов, музыки, видео, дистрибутивов и т.д. Например, люди, работающие с документами будут хранить различные отчеты, справки и т.д.; компьютерный отдел наверняка обзаведется хранилищем дистрибутивов и различных полезных страничек, скачанных из интернета…
Если в таких хранилищах будет очень много файлов, то становится слишком трудным искать в них требуемый документ или файл (особенно если все еще рассортировано по десяткам папок с малопонятными названиями типа «старое», "!!!", «удалить», «личное» и т.д. :-) ). Таким образом, стоит задача организовать эффективный поиск.
Первый способ решения
Если бы все файлы находились на одном компьютере, то решение задачи существует уже давно — Google Desktop. Удобство этой программы можно не описывать.
Однако если нужно организовать доступ в пределах локальной сети, тогда придется слегка «поработать напильником». Первое решение нашлось довольно быстро — связка Google Desktop + DNKA. Однако ее применение оставило не очень положительные впечатления. Во-первых, для DNKA давно нет новых версий, а те, что есть, работают с довольно старыми версиями Google Desktop. Во-вторых, наблюдаются какие-то проблемы с кириллицей и pdf-файлами (точно уже сейчас не вспомню).
Общий вывод: в целом, использовать можно, если поиск идет по обычным файлам txt, html, doc. Устанавливается и работает без всяких проблем.
Второй способ решения
Дальнейшие «раскопки» навели на мысль: а почему бы не использовать схему с прокси-сервером?.. Действительно, Google Desktop имеет свой собственный веб-сервер, доступный по ip 127.0.0.1. Далее на этот же компьютер ставим стандартную связку apache + php в качестве прокси-сервера, сидящего, скажем, по адресу 10.0.1.10. В результате получается так: из локальной сети все поисковые запросы идут на прокси-сервер, а тот уже перенаправляет их к внутреннему серверу 127.0.0.1. Получив результат, отдает страницу обратно в локальную сеть с заменой всех адресов в теле страницы с 127.0.0.1 на 10.0.1.10.
В целом подход хорош, но Google Desktop каким-то образом проверяет, откуда идут запросы, и грязно ругается, если не оттуда. :-) Все мои попытки сэмулировать на прокси-сервере какой-нибудь браузер окончились безрезультатно.
Общий вывод: полная свобода действий, если у кого-нибудь получится такое сделать.
Третий способ: используем API
Работоспособное решение нашлось неожиданно. Называется Goolag (да-да, согласен, довольно своеобразное название :-) ). Модель та же — прокси-сервер, но вместо выкачивания тела страницы с результатами поиска используется Google Desktop API. За такую возможность, кстати говоря, мое отдельное спасибо программистам из Гугла. При этом идет запрос к специальной странице, а на выходе мы имеем xml-файл с результатами поиска. Дальше парсим и отображаем как нам угодно. Насколько я смог заметить, не весь функционал доступен через API, но и того, что есть, хватает с лихвой.
Результаты
Связка Google Desktop + Goolag (+ apache + php) является удобным инструментом для поиска файлов на выделенном «хранилище» в локальной сети.
Трудозатраты по установке минимальны: Google Desktop становится из дистрибутива, Apache и PHP — тоже из дистрибутивов, в исходниках Goolag нужно поправить пару строчек (в комментарии все указано, где менять).
Суммарное впечатление от работы системы: удобно! Находит даже то, что закопано очень глубоко и непонятно в какие директории. У нас, например, работает на хранилище всех дистрибутивов и электронных книг. Ищет не только по названиям файлов, но и по содержимому html, doc, pdf, txt файлов.
Просто мысли вслух
Полагаю, что с Google Desktop можно было бы организовать и систему «вики» с мощным поиском. Действительно, найдя что-нибудь полезное в сети, мы часто сохраняем эти страницы на свой компьютер. Если организовать общий склад из таких страниц — уже скоро там невозможно будет что-нибудь найти. С поиском Google это не будет проблемой.
Постановка задачи
Имеется компьютерная сеть организации. Если сотрудников достаточно много, неизбежно возникают различные «хранилища» — документов, музыки, видео, дистрибутивов и т.д. Например, люди, работающие с документами будут хранить различные отчеты, справки и т.д.; компьютерный отдел наверняка обзаведется хранилищем дистрибутивов и различных полезных страничек, скачанных из интернета…
Если в таких хранилищах будет очень много файлов, то становится слишком трудным искать в них требуемый документ или файл (особенно если все еще рассортировано по десяткам папок с малопонятными названиями типа «старое», "!!!", «удалить», «личное» и т.д. :-) ). Таким образом, стоит задача организовать эффективный поиск.
Первый способ решения
Если бы все файлы находились на одном компьютере, то решение задачи существует уже давно — Google Desktop. Удобство этой программы можно не описывать.
Однако если нужно организовать доступ в пределах локальной сети, тогда придется слегка «поработать напильником». Первое решение нашлось довольно быстро — связка Google Desktop + DNKA. Однако ее применение оставило не очень положительные впечатления. Во-первых, для DNKA давно нет новых версий, а те, что есть, работают с довольно старыми версиями Google Desktop. Во-вторых, наблюдаются какие-то проблемы с кириллицей и pdf-файлами (точно уже сейчас не вспомню).
Общий вывод: в целом, использовать можно, если поиск идет по обычным файлам txt, html, doc. Устанавливается и работает без всяких проблем.
Второй способ решения
Дальнейшие «раскопки» навели на мысль: а почему бы не использовать схему с прокси-сервером?.. Действительно, Google Desktop имеет свой собственный веб-сервер, доступный по ip 127.0.0.1. Далее на этот же компьютер ставим стандартную связку apache + php в качестве прокси-сервера, сидящего, скажем, по адресу 10.0.1.10. В результате получается так: из локальной сети все поисковые запросы идут на прокси-сервер, а тот уже перенаправляет их к внутреннему серверу 127.0.0.1. Получив результат, отдает страницу обратно в локальную сеть с заменой всех адресов в теле страницы с 127.0.0.1 на 10.0.1.10.
В целом подход хорош, но Google Desktop каким-то образом проверяет, откуда идут запросы, и грязно ругается, если не оттуда. :-) Все мои попытки сэмулировать на прокси-сервере какой-нибудь браузер окончились безрезультатно.
Общий вывод: полная свобода действий, если у кого-нибудь получится такое сделать.
Третий способ: используем API
Работоспособное решение нашлось неожиданно. Называется Goolag (да-да, согласен, довольно своеобразное название :-) ). Модель та же — прокси-сервер, но вместо выкачивания тела страницы с результатами поиска используется Google Desktop API. За такую возможность, кстати говоря, мое отдельное спасибо программистам из Гугла. При этом идет запрос к специальной странице, а на выходе мы имеем xml-файл с результатами поиска. Дальше парсим и отображаем как нам угодно. Насколько я смог заметить, не весь функционал доступен через API, но и того, что есть, хватает с лихвой.
Результаты
Связка Google Desktop + Goolag (+ apache + php) является удобным инструментом для поиска файлов на выделенном «хранилище» в локальной сети.
Трудозатраты по установке минимальны: Google Desktop становится из дистрибутива, Apache и PHP — тоже из дистрибутивов, в исходниках Goolag нужно поправить пару строчек (в комментарии все указано, где менять).
Суммарное впечатление от работы системы: удобно! Находит даже то, что закопано очень глубоко и непонятно в какие директории. У нас, например, работает на хранилище всех дистрибутивов и электронных книг. Ищет не только по названиям файлов, но и по содержимому html, doc, pdf, txt файлов.
Просто мысли вслух
Полагаю, что с Google Desktop можно было бы организовать и систему «вики» с мощным поиском. Действительно, найдя что-нибудь полезное в сети, мы часто сохраняем эти страницы на свой компьютер. Если организовать общий склад из таких страниц — уже скоро там невозможно будет что-нибудь найти. С поиском Google это не будет проблемой.