Плагины это модули расширения, которые позволяют ввести в поисковый движок поддержку новых форматов документов и архивов. В поисковом движке используются следующие виды плагинов:
Технически плагины реализуются как обычные DLL Windows. Для того, чтобы поисковый движок мог автоматически подключать плагины, они должны быть разработаны с учетом некоторых спецификаций. Спецификации плагинов полностью открыты, а чтобы облегчить создание плагинов сторонними разработчиками, мы включили примеры реально работающих плагинов в SDK проекта.
Среди плагинов можно выделить метаплагины, которые позволяют подключать модули расширения для других программ, преобразуя вызовы API поисковой системы в нужный формат. Для извлечения текста разработан метаплагин 2text, который позволяет использовать любые консольные программы для преобразования документа в простой текст (ASCII или utf-8). К этому метаплагину подключаются такие модули, как dvi2tty и DjVe2Txt. Для распаковщиков есть метаплагин wcx_unpacker, который среди прочего позволяет использовать WCX плагины файлового менеджера Total Commander.
Плагины должны размещаться в каталоге поискового движка в подкаталоге \plugins. Отдельные виды плагинов размещаются в своих подкаталогах:
1. плагины-распаковщики - в подкаталоге \plugins\unpackers
2. разборщики форматов документов (парсеры) - в подкаталоге \plugins\filetypes
2. интерфейсы к внешним поисковым движкам - в подкаталоге \plugins\engines
После загрузки поисковый движок сам просканирует вышеуказанные подкаталоги и попробует подгрузить и зарегистрировать в своих таблицах все файлы с расширением dll. Для получения списка зарегистрированных плагинов используется команда -help.
Версия SDK на английском языке здесь.
2text - метаплагин, который может вызывать внешние программы для извлечения текста из документов разных форматов. С его помощью можно использовать консольные утилиты, скрипты на VisualBasic или Python - в общем любые программные средства, которые позволяют получить имя файла в одном формате и записать результат в файл в формате TXT, HTML или RTF.
Его описание здесь.
Плагины распаковщиков поддерживают следующие особенности:
1. Распаковка данных во временный каталог с автоматической чисткой при выгрузке плагина.
2. Допускается неограниченная рекурсия - если распаковщик извлекает из архива другой архив, даже этого же формата, плагин должен открыть новую сессию работы с архивом независимо от состояния распаковки ранее открытых архивов.
3. Поддержка комментариев в архиве.
4. Поддержка юникода.
Версия SDK на английском языке здесь
Плагины движков позволяют выполнять несколько функций, в частности:
1. QueryRewriter - изменяет текст запросов перед их парсингом поисковой системой. К примеру, плагин может исправлять кодировку (русский текст, набранный в английской раскладке), заменять ключевые слова логических операторов, приводя их к принимаемому системой виду OR/AND/OR.
2. SimpleSearcher - выполнять элементарный запрос, результатов которого является единственная строка текста в формате TXT или HTML. Например, плагин-калькулятор может отфильтровывать введенные арифметические выражения и выдавать результат расчета. В этом случае консольная поисковая утилита FAIND в интерактивном режиме будет работать как калькулятор.
3. Searcher - реализует основное предназначение этих плагинов, выполняет запрос к внешнему поисковому движку и возвращает список найденных файлов. К примеру, таким образом реализован метапоиск в Интернете, поиск по FTP и распределенный поиск.
4. ActiveScripter - плагин анализирует запрос и составляет сценарий его выполнения модулями движка. Этот тип плагина предназначен для высокоуровневых алгоритмов, например для реализации режима поддержания диалога с пользователем для уточнения запроса.
Описание API плагинов-движков - здесь.
Основаная функция лексеров - выполнить какое-либо преобразование текста прежде, чем он поступит на встроенный word broker. С помощью этих плагинов можно выполнять дешифровку текста, его перевод, сегментацию для иероглифических языков, и так далее. API очень прост - плагин получат строку исходного текста и возвращает строку преобразованного текста.
Включение необходимых лексеров в процесс обработки области поиска выполняется командой -preprocess.
Версия SDK на английском языке здесь.
Примеры плагинов входят в SDK.
В каталоге sdk\samples\archive_plugin\lzh_plugin находится проект для VS 2003, компиляция которого создает модуль для распаковки архивов в формате LHA (файлы с расширением lzh). Для работы плагина необходимо, чтобы вместе с dll файлом самого плагина в этом же каталоге находился исполняемый файл архиватора lha.exe. Так как сама программа-архиватор защищена законодательством об авторском праве, мы не можем распространять ее вместе с SDK. Вы должны самостоятельно найти и скопировать в соответствующий каталог этот файл.
Скачать SDK поисковой системы с примерами и другие компоненты можно здесь 
© Mental Computing 2010
Поисковая система
SDK Поисковой системы
Экранный переводчик
|
|
изменено 01-Jul-10 | ||||||||||||||||||||||||||||||||||||||