Поисковая система Integra и встроенный поисковый движок

Детали реализации (API поисковой машины)

Все операции (индексирование, поиск) выполняются обычным порядком, принятым для поисковой машины φaind, то есть, к примеру, для объявления новой именованной зоны используется команда -index delete_domain=N. Аналогично, для индексирования документов в заданной области поиска на вход поисковой машины через ее API подаются описанные в документации команды. Для отображения хода индексирования используются callback-функции.

Таким образом, вся содержательная часть поисковой машины остается инкапсулированной и не зависящей от интерфейсной части, которая в случае поисковой машины Integra использует Win32 API для отображения окон и взаимодействия с пользователем. Другая версия поисковой системы для платформы .NET (βulldozer.net) использует классы WinForms для отображения интерфейса, а поисковый движок загружается в виде сборки (фактически это DLL).

Совместная работа с утилитой φaind

Создаваемая утилитой φaind индексная база нормально используется также Integra - с единственным ограничением:

Одновременная работа двух утилит запрещена (чтобы не вызвать одновременных модификаций в общих файлах). В противном случае есть большая вероятность полного разрушения структуры индексной базы.

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

Некоторые трудности может создать использование в именах индексных зон символов, отсутствующих в OEM-раскладке. Впрочем, русские названия печатаются в консоли и распознаются без проблем. К примеру, команда -index domains, выводящая список индексов без проблем выводит кириллицу:

Так же без трудностей можно указывать название индексной базы при поиске (в команде -index domain=NNN), к нижеприведенном примере поиск ведется по индексной зоне с именем "Всемирная литература DVD № 1":

  
  © Mental Computing 2010

изменено 31-Jan-10