Это полнофункциональная версия поисковой системы, включающая средства для работы с архивами (см. полный перечень возможностей), поддержку плагинов для разных форматов документов, индексатор. Она скомпилирована как обычная 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.
Полная спецификация интерфейса доступна здесь.
Вообще идеология взаимодействия поисковой машины и прикладной программы намеренно сделана предельно простой без особого ущерба функциональным возможностям. Движок и прикладная программа взаимодействуют посредством обмена текстовыми строками - запрос на поиск поступает в виде строки со списком команд и их аргументов, а результат поиска, если он есть, возвращается как строка с HTML или XML форматированными данными.
Реализованный механизм стандартен для поискового
движка FAIND - пользовательская программа готовит текстовую строку с
командами (список можно посмотреть здесь).
С помощью отдельным команд в текстовой строке указывается где искать,
какие файлы проверять, и какую информацию искать. Затем
пользовательская программа вызывает процедуру sol_Execute
(см. здесь) в API
DLL, и процесс поиска начинается. Текстовая строка с опциями поиска
разбирается на элементы, и локальный
паук начинает перебор файлов либо обращается к индексатору для
загрузки и анализа индексной базы.
По мере нахождения заданных образцов текста в файлах движок записывает имена файлов и некоторые другие сведения во внутренний текстовый буфер. Это буфер может быть нескольких форматов (см. здесь), но основными являются XML и HTML. После окончания поиска результаты возвращаются в виде одной строки - а дальше уже задача программы отображать эти результаты или использовать их другим способом.
Примеры использования поисковой библиотеки
►
Дистрибутивы настольной поисковой системы и серверного варианта можно скачать здесь.
Скачать SDK поисковой системы с примерами и другие компоненты можно здесь
![]() |