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

Описание библиотеки поисковой системы

Это полнофункциональная версия поисковой системы, включающая средства для работы с архивами (см. полный перечень возможностей), поддержку плагинов для разных форматов документов, индексатор. Она скомпилирована как обычная dll платформы Win32 и может быть подключена в проектах, написанных на других языках (хотя использование C/C++ облегчит задачу). Условия получения и использования библиотеки описаны здесь.

В некоторых случаях более удобным с точки зрения разработки является .NET компонент faind_fx.dll - см. его описание здесь. По набору функций поиска они практически идентичны - различается лишь "обвязка". Хотя следует заметить, что из-за некоторых внутренних особенностей функционирования платформы .NET на текущем этапе скорость работы Win32 DLL значительно превосходит данный показатель версии .NET.

Использовать в проектах именно отдельно скомпилированный компонент поисковой машины удобно по той причине, что в этом случае во-первых устраняется необходимость очень долгих перекомпиляций кода поисковой машины, во-вторых можно распараллеливать работы по модификации поискового движка и front-end'а. 

Как скомпилировать из исходных текстов

 Если Вы получили исходные тексты поисковой машины, то можете скомпилировать поисковый движок в виде DLL. Для этого загрузите проект LEM\Demo\AI\Solarix\build\sdk\sdk.sln в VisualStudio 2003 и выберите в опциях проекта необходимую конфигурацию. Компиляция требует не менее 512 Mb оперативной памяти (1 Гб крайне рекомендуется). Для компиляции применимы все рекомендации о создании поисковой утилиты FAIND из исходников.

Полный поисковый движок в виде Win32 DLL достаточно велик - около 3 Mb кода. Во многих случаях для встроенного в более крупный проект поискового движка не нужны многие функции. Чтобы сократить объем итоговой DLL, можно отключить часть функциональности поискового движка с помощью макросов препроцессора C++. К примеру, максимально упрощенная версия без поддержки архивов и некоторых форматов текстовых файлов  имеет размер менее 700 Кб.

Плагины для поисковой системы

Функциональность поискового движка можно расширять написанием плагинов. Спецификации интерфейса для плагинов открыты, кроме того исходный код нескольких плагинов доступен в составе SDK.

Набор экспортируемых из faind.win32.dll процедур

Полная спецификация интерфейса доступна здесь.

Механизм взаимодействия между поисковым движком и программой

Вообще идеология взаимодействия поисковой машины и прикладной программы намеренно сделана предельно простой без особого ущерба функциональным возможностям. Движок и прикладная программа взаимодействуют посредством обмена текстовыми строками - запрос на поиск поступает в виде строки со списком команд и их аргументов, а результат поиска, если он есть, возвращается как строка с HTML или XML форматированными данными.

Реализованный механизм стандартен для поискового движка FAIND - пользовательская программа готовит текстовую строку с командами (список можно посмотреть здесь). С помощью отдельным команд в текстовой строке указывается где искать, какие файлы проверять, и какую информацию искать. Затем пользовательская программа вызывает процедуру sol_Execute (см. здесь) в API DLL, и процесс поиска начинается. Текстовая строка с опциями поиска разбирается на элементы, и локальный паук начинает перебор файлов либо обращается к индексатору для загрузки и анализа индексной базы.

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

Примеры использования поисковой системы

Примеры использования поисковой библиотеки

Где скачать поисковую систему и SDK

Дистрибутивы настольной поисковой системы и серверного варианта можно скачать здесь.

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

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