Поисковая машина

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

Это полнофункциональная версия поисковой машины, включающая средства для работы с архивами (см. полный перечень возможностей), поддержку плагинов для разных форматов документов, индексатор. Она скомпилирована как обычная 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 поисковой системы с примерами и другие компоненты можно здесь поисковая система

изменено 01-Jul-10