Плагины для поискового движка

Назначение плагинов

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

Технически плагины реализуются как обычные 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

Путь к каталогу с плагинами можно переопределить в конфигурационном файле, задав другое значение параметрам plugins_path, lister_plugins и hex_lister_plugin в секции [general].

После загрузки поисковый движок сам просканирует вышеуказанные подкаталоги и попробует подгрузить и зарегистрировать в своих таблицах все файлы с расширением dll. Для получения списка зарегистрированных плагинов используется команда -help.

Спецификации API

Парсеры

Версия SDK на английском языке здесь.

2text - метаплагин, который может вызывать внешние программы для извлечения текста из документов разных форматов. С его помощью можно использовать консольные утилиты, скрипты на VisualBasic или Python - в общем любые программные средства, которые позволяют получить имя файла в одном формате и записать результат в файл в формате TXT, HTML или RTF.

Его описание здесь.

Распаковщики

Плагины распаковщиков поддерживают следующие особенности:

1. Распаковка данных во временный каталог с автоматической чисткой при выгрузке плагина.

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

3. Поддержка комментариев в архиве.

4. Поддержка юникода.

Версия SDK на английском языке здесь

Внешние движки

Плагины движков позволяют выполнять несколько функций, в частности:

1. QueryRewriter - изменяет текст запросов перед их парсингом поисковой системой. К примеру, плагин может исправлять кодировку (русский текст, набранный в английской раскладке), заменять ключевые слова логических операторов, приводя их к принимаемому системой виду OR/AND/OR.

2. SimpleSearcher - выполнять элементарный запрос, результатов которого является единственная строка текста в формате TXT или HTML. Например, плагин-калькулятор может отфильтровывать введенные арифметические выражения и выдавать результат расчета. В этом случае консольная поисковая утилита в интерактивном режиме будет работать как калькулятор.

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

Скачать SDK поисковой системы с примерами и другие компоненты можно здесь поисковая система

  © Elijah Koziev 2010
прикладные проекты на основе грамматического словаря API грамматической машины компоненты для доступа к грамматическому словарю условия получения SDK токенизатор и сегментатор морфологический анализ и синтез лемматизатор база N-грамм синтаксический анализатор словоформы морфология и синтаксис русского языка падеж число род совершенный и несовершенный вид экспорт в SQL формат экспорт в XML формат скрипт SQL словаря структура SQL словаря структура XML словаря компоненты для доступа к грамматическому словарю ORM Persistent Dictionary Library лемматизация стемминг примеры использования грамматического словаря склонение существительных в русском языке склонение русских прилагательных спряжение глаголов в русском языке поиск текста с учетом морфологии OCR подсистема расширенные регулярные выражения генератор текста генератор случайного текста и имитатор рандомизатор синонимизатор перефразировщик Статистика буквенных паттернов

Грамматический словарь русского языка



Грамматический словарь
склонение и спряжение глаголов, существительных, прилагательных

В состав входит русский и английский словарь.

платформа:  Windows 2000 ... Windows 7
требования: 512 Mb свободной памяти, 300 Мб на диске
размер:         34 Мб

  скачать грамматический словарь купить грамматический словарь SDK грамматического словаря
грамматический словарь русского языка



SDK Грамматического словаря



SDK Грамматического Словаря
склонение и спряжение глаголов, существительных, прилагательных

В состав входит русский и английский словарь.

платформа:  Windows 2000 ... Windows 7
размер:         13 Мб

SQL словарь (демо):
sqlite mysql oracle firebird mssql

скачать демо-версию SDK купить SDK API грамматического словаря



Поисковая система



Integra
настольная и сетевая поисковая система 

платформа:  Windows XP ... Windows 7
требования: 512 Mb свободной памяти
размер:         21 Мб

Дополнительные компоненты:
MySQL поисковый сервер 13.5 Мб
Integra.Premium MySQL 3.9 Мб

скачать поисковую систему SDK поисковой системыописание поисковой системы



SDK Поисковой системы



SDK Поискового движка
API для настольной и сетевой поисковая система 

платформа:  Windows XP ... Windows 7
размер:         17 Мб

Дополнительные компоненты:

MySQL поисковый сервер 13.5 Мб
Integra.Premium MySQL 3.9 Мб

скачать SDK SDK поисковой системы



Экранный переводчик



Translator
экранный переводчик

платформа:  Windows XP ... Windows 7
требования: 256 Mb свободной памяти
размер:         4.4 Мб

Дополнительные компоненты:
расширенный англо-русский словарь 6.4 Мб


скачать экранный переводчикописание экранного переводчика



изменено 16-Aug-11