The FTPSearch/Agent system | |||
[новости] [описание] [установка] [скачать] [пример] [обратная связь] [switch to english] | |||
Описание работы пакета FTPSearch/Agent: |
К особеностям программного пакета можно отнести:
Пакет поиска FTPSearch/Agent состоит из трёх частей: программы-индексатора Agent (агент индексирования), написанного на Java, web интерфейса к поиску, написанного на PHP и базы данных ссылок, роль которой выполняет MySQL. Нумерация версии пакета производится следующим образом: три числа, разделённые точками. Первое число - общая версия пакета (сечас вторая), второе число - версия агента индексирования, третье число - версия Web интерфейса. Иллюстрацию работы WEB интерфейса вы можете посмотреть на страничке [пример] - данная иллюстрация была создана из результатов реальной работы FTP поиска.
Программа Agent должна работать постоянно. Логически она состоит из двух частей: сканера статуса online-offline и индексатора. Каждый сервер, внесённый в базу данных поиска, агент индексирует раз в восемь часов. К индексируемому содержимому отностся структура файлов и директорий сервера, а так же небольшие (до 8 килобайт) файлы с расширениями .txt .diz .nfo
Файлы, скаченные в режиме индексирования используются в дальнейшем для ассоциативного поиска. Для этого скаченый файл подготавливается: в содержимом файле остаются лишь символы алфавита - все спецсимволы, арифметический символы и знаки препинания, а так же цифры заменяются пробелами, а из полученных слов удаляются те, что имеют длину меньше 4х символов. Полученный текст, состоящий из слов от 4х символов длиной ставится в соответствие к названиею директории, в которой он лежит, и двух её родительских (с разной степенью силы ассоциаций). При поиске, после выдачи ссылок с прямым совпадением с запросом по имени директории и файлов, программа ищет самые сильные ассоциации, потом менее сильные, а в конце - самые слабые. Ассоциации ищутся по этому же запросу в приготовленных из скачанных файлов текстах. Далее найденные названия директорий используются в качестве новых ключей поиска.
Релевантность ассоциативного поиска обычно невелика, но в случаях, когда по прямому совпадению в названиях файлах и директорий ничего не найдено, поиск способен выдавать ссылки тематически связанные с запросом. Далее приведено пара примеров работы ассоциативного поиска:
Первый пример: по запросу "Game" поисковая система в асссоциативном режиме находит директорию "/SETUP/CS/mod_-_half" благодаря тому, что в директории "/дистрибутвы/игры/Half" совсем не на данном сервере лежит файл "Readme.txt" содержащий (в оригинале) слова "This game...". Данный файл привязывает с высокой степенью ассоциации слово "game" к слову "Half", с меньшей степенью ассоциации к слову "игры" и с минимальной степенью ассоциации к слову "дистрибутивы".
Второй пример, как демонстрация низкой релевантности: по данному же запросу, но уже в конце найденого находится результат "/Programming/Java-doc/j2sdk-docs/api/javax/imageio/event". Какими путями он туда попал можно понять, лишь просмотрев список ассоциаций системы по слову "Game": среди ассоциаций "Need For Speed - 5"/"АвтоМото"/"Games" (по степени ассоциации в порядке убывания), встретилась и такая: "event"/"CS-1.6.2"/"Games" по которой и была найдена эта ссылка.
Система поиска отсортировала по релевантности найденные ссылки и поставила первый пример в середину, а второй - в конец найденого, как результат с сомнительной релевантностью.
Помимо автогенерируемых при поиске ассоциаций существует и другая система, позволяющая ещё более точно ранжировать результаты. Данная система основана на ассоциировании запроса с результатом поиска: пользователь вводит запрос, поиск выводит результаты и по клику пользователя на результат системой создаётся дополнительная ассоциативная связь "запрос"-"найденое". При следующем запросе, содержащим слова из запроса, внесённого в ассоциацию, пользователю будут предлагаться ссылки, которые в прошлый раз пользователь посчитал для себя интиресными.
Каждую учётную запись механизм поиска проверяет раз в 5-30 минут, пока не будет достигнуто соединение. После того, как индексация проведена, следующая попытка подключения производится не ранее, чем через 8 часов. Если за последние 15 суток поиск ни разу не сумел подключиться к серверу по учётной записи, то такая запись удаляется. В случае прерывания связи, через 15 минут будет предпринята попытка доиндексировать сервер.
Для использования данного пакета на системах, где русская кодировка отличается от cp-1251 или используются какие-либо другие начертания символов вам нужно самостоятельно доработать программу. Для этого смените языковой модуль в web интерфейсе и сконфигурируйте MySQL для работы с нужной вам кодировкой.
Максимальная длина названия файла, поддерживаемая поиском составляет 255 символов, а максимальная глубина индексации директорий начиная от корневой - 255 вложенных уровней.
Дополнительную информацию о работе Агента можно узнать здесь: Agent.java.html
(c) 2003, Konstantin Andrunin |