Проект Solarix Intellectronix относится к категории open source, то есть при согласии с условиями лицензии Вы можете скачать исходные тексты проекта и откомпилировать их, модифицировав для своих нужд, или использовав как часть собственного проекта.
Компиляция из исходных текстов может быть полезна для того, чтобы получить исполнимые файлы с максимальной оптимизацией под свою платформу (выкладываемые на сайте исполнимые файлы файлы поисковых утилит и компонент откомпилированы для системы команд первой версии процессора Pentium). Кроме того, наличие исходных текстов позволяет внести в алгоритм работы утилит модификации (хотя лучше, конечно, связаться с разработчиками для согласованных действий). Наконец, возможность самостоятельной компиляции означает, что поисковую машину можно "погонять" в отладчике, разбираясь с деталями его работы, которые не отражены в документации.
Если самостоятельная компиляция поискового движка Вам не подходит, но Вы все-таки хотели бы использовать поисковый движок FAIND в своих проектах - загляните на описание API, с помощью которого можно использовать поисковую машину в виде .NET компонента или Win32 DLL.
Для компиляции можно использовать разные компиляторы (ограничения связаны с качеством поддержки стандарта C++), но результаты, а именно - качество получаемого коды, различаются очень серьезно, что отражено в таблице бенчмарков.
С их помощью можно значительно уменьшить размер кода поискового движка, исключив ненужные для конкретного применения возможности.
| макрос | роль |
|---|---|
| FAIND_UNPACK | с поддержкой разархивирования |
| FAIND_RAW_READER | с поддержкой поиска в документах неизвестного формата |
| FAIND_RTF_READER | с поддержкой документов в формате RTF |
| FAIND_REPORTS | с формированем статистических отчетов |
| FAIND_ODBC | с поддержкой записи результатов в ODBC СУБД |
| FAIND_LAN | с поддержкой поиска в локальной сети (только MS Windows) |
| FAIND_NO_LOG | отключается код для трассировки работы движка |
| FAIND_NO_ECHO | отключается код для вывода сообщение на консоль |
| FAIND_WEB | включать код для работы с веб-сайтами (HTTP и FTP) |
| FAIND_PLUGINS | включать код для поддержки плагинов |
| FAIND_THREADS | поддержка многопоточности |
| FAIND_FILEDB | индексатор хранит корневые таблицы в простом не-транзакционном файловом хранилище |
| FAIND_SQLITE | индексатор хранит корневые таблицы в СУБД SQLite |
| FAIND_4G_DOCS | в одном индексе может быть до 232-1 документов (по умолчанию только 65535) |
| FAIND_DOC_READER | с поддержкой документов MS Word |
| FAIND_FILEMON | с поддержкой кода для отслеживания изменений в проиндексированных документах |
| SOL_NO_AA | отключить синтаксические модули (остается только морфология) |
| LEM_UNICODE_EX | подключить расширенную поддержку UNICODE и разных алфавитов |
| LEM_UNICODE_CONSOLE | использовать консоль MS Windows с прямым выводом UNICODE символов |
| LEM_ICU | использовать библиотеку IBM ICU для работы с Unicode'ом |
Проект для компиляции в MS VisualStudio.2003 находится в подкаталоге LEM\Demo\AI\Solarix\Search\Faind после распаковки архива библиотеки LEM.
В списке проектов Вы можете найти как полную версию движка (называется faind), так и упрощенную версию (faind-lite). Проект для упрощенной версии можно использовать как основу для собственных модификаций поискового движка, так как время компиляции для него в несколько раз меньше, чем для полной версии.
Для успешной компиляции необходимо определить переменные окружения:
TMP - имя каталога для временных файлов (для сохранения obj файлов)
LEM_PATH - путь к каталогу библиотеки LEM.
BOOST_PATH - путь к каталогу с библиотекой Boost C++ (см. о структуре каталогов).
ICU_PATH - путь к каталогу библиотеки IBM ICU (расширенная поддержка юникода), необходима только для версии Pro движка и утилит.
Для нормальной компиляции необходимо не менее 512 Мб оперативной памяти, желательно 1 Гб (на 512 Mb при компиляции .NET версии поисковой машины начинается раздражающий свопинг - линкер VisualStudio создает очень компактный код, но явно загружает в оперативную память весь объектный код для выполнения сложных оптимизаций). Иногда при нехватке памяти компилятор и линкер MSVS начинают давать загадочные сбои (с выдачей INTERNAL COMPILER ERROR или Linker fault). В этом случае просто запускайте компиляцию снова - обычно помогает.
Проект faind.sln в вышеуказанном каталоге содержит несколько конфигураций, в том числе: версия утилиты для Win32, для .NET, поисковый движок в виде .NET компонента, поисковый движок в виде DLL.
Проект существует только для версии консольной утилиты faind-lite, так как более масштабные проекты с трудом перевариваются данным компилятором. Один из симптомов - сообщение Internal error, после чего среда перестает работать до перегрузки операционной системы. К сожалению, вылечить это нельзя.
Для компиляции можно также использовать нашу утилиту MAK - аналог make. В каталоге с исходниками φaind есть файл makefile - это скрипт для компиляции поисковой утилиты для разных платформ (включая GNU/Linux).
Проект находится в состоянии непрерывной модификации. Поэтому иногда выкладываемые на сайтах исходные тексты могут не компилироваться. Обращайтесь к разработчикам в этих случаях - мы постараемся разрешить возникающие проблемы.
© Elijah Koziev 2010
Поисковая система
SDK Поисковой системы
Экранный переводчик
|
|
01-Jul-10 | ||||||||||||||||||||||||||||||||||||||