Индексатор поисковой системы

Прежде чем перейти к объяснению процедуры индексирования, необходимо пару слов сказать об отличиях между статическими и динамическими индексами. Мы рекомендуем создавать статические индексы для неизменяющихся документов, например для файлов на CD. Если же индексируемые документы будут меняться, то для отслеживания изменений необходимо выбирать динамический тип индекса. С технической точки зрения, статические индексы значительно компактнее, так что экономия для большой коллекции CD может составлять несколько гигабайтов на локальном диске. Дополнительные технические подробности можно почитать на странице индексатора поискового движка.

Индексирование

Во время индексирования поисковая машина просматривает заданные источники файлов (то есть область поиска, которую в данном контексте лучше называть областью индексирования) и собирает в своей базе данных сведения о содержимом файлов, сохраняя их на жестком диске компьютера, что позволяет в дальнейшем выполнять, к примеру, поиск нужного CD с документами, задавая фрагменты текста (паттерн запроса), даже не устанавливая компакт-диски в привод.

Рассмотрим процесс создания индекса для группы текстовых файлов по шагам.

После запуска программы в главном окне нажмите кнопку вызова каталогизатора:

вызов окна каталогизатора

В появившемся окне (это и есть каталогизатор) нажимаете кнопку "Создать" или комбинацию Ctrl-N, которая вызовет мастер создания индекса:

вызов мастера создания нового индекса в окне каталогизатора

Мастер знает несколько типичных сценариев индексирования, например для CD или FTP-серверов, Вам достаточно ввести имя для индекса или адрес веб-ресурса:

Индексирование - визард

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

Задание документов для индексирования

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

При необходимости можно переключиться в расширенный режим задания области индексирования (кнопка Дополнительно), в котором будут доступны такие возможности, как задание кодировки текста, параметры сетевого паука (веб-краулера) вроде ограничения на трафик или глубину погружения по гиперссылкам, а также вызов сетевого сканера для поиска ресурсов в сети:

Индексирование - задание области индексирования

Затем необходимо выбрать способ обновления индекса. Для неизменяющихся документов оптимальным будет статический индекс:

выбор параметров индекса

Затем Вы задаете имя индекса (обычно краткое) и опционально - примечания (произвольный текст). Допускается использование любых национальных символов - используйте стандартную утилиту charmap для вставки всевозможных букв "с хвостиками":

название и комментарий для создаваемого индекса

На последнем шаге можно быстро оценить время индексирования и размер получающейся индексной базы:

оценка размера индекса и времени на его создание

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

Наконец, нажатие кнопки 'Готово' запускает индексирование. По умолчанию (изменяется переключателем на последнем шаге мастера) включается фоновый режим индексирования, во время которого поисковая система доступна для использования. Ход идущей в фоне индексации отображается при этом в небольшом окне:

статус фоновой индексации

Если же снять флаг фоновой индексации, то во время обработки документов индексатором на экране будет окно:

окно состояния индексирования

Надо заметить, что индексирование документов - небыстрая операция, занимающая немало компьютерных ресурсов (оперативной памяти, процессорного времени, места на диске) - см. бенчмарки. Во время индексирования иконка программы в области уведомлений (называемый иногда system tray) выглядит так (при наведении курсора мыши также показывается строка текущего состояния):

поисковик индексирует документы - желтая иконка

После окончания индексирования в области уведомлений (называемой иногда system tray) появится сообщение:

индексирование завершено - обычная иконка

Для любого индекса можно посмотреть его состояние, в том числе - объем, занимаемый на диске файлами базы данных, количество и объем проиндексированных документов. Для этого выберите нужный индекс в списке и нажмите кнопку "Состояние":

Состояние индекса

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

Индексирование каталогов с изменяющимися документами

Другой тип индекса, который требует от поисковой машины немного больше ресурсов для создания и поддержания в актуальном состоянии - динамический. Типичный пример - пользовательская папка "Мои документы", куда периодически попадают новые файлы и где часто меняются старые. Очевидно, что после любого изменения в таком каталоге необходимо привести индекс документов в актуальное состояние. Есть два способа это сделать.

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

Поиск по динамическому индексу выполняется обычным образом (см. примеры).

Есть другой способ организовать обновление динамического индекса, причем автоматическое. Для активизации этой возможности достаточно при создании индекса на шаге "Тип индекса" выбрать вариант "отслеживать изменения":

Индексирование - создание динамического индекса

Поисковая система будет самостоятельно следить за изменениями в соответствующих каталогах и выполнять обновление индекса в периоды простоя программы. В строке состояния главного окна программы после некоторой задержки появится соответствующее сообщение:

мониторинг изменений проиндексированных файлов

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

Вы можете заметить, что поисковая система ждет некоторое время, прежде чем решает обновлять индекс. Точнее говоря, система ждет, что пользователь прекратит работу с программой и по истечении некоторого времени (несколько минут) запускает обновление очередного индекса, если их несколько в очереди на обновление. Бывают ситуации, когда Вы не можете ждать автоматического обновления индекса. В этих случаях просто запускайте обновление вручную для измененных индексов.

 Индекс 'Мой компьютер'

Среди стандартных сценариев в визарде есть 'Мой компьютер', который позволяет обработать все файлы документов на всех жестких дисках компьютера. При этом архивы не распаковываются. Начиная с версии 3.70 поисковая система позволяет пользователю выбрать движок для этого индекса, показывая страницу выбора в визарде:

выбор сценария индексания для всех жестких дисков

Обратите внимание на вариант "Windows Indexing Service", который доступен после установки плагина для Windows Vista. Если соответствующая служба работает и успела проиндексировать жесткие диски, то Интегра сможет быстро искать информацию в поддерживаемых Windows Search форматах и не заботиться об обновлении индекса. Плагин входит только в стандартный дистрибутив версии Premium поисковой системы.

С точки зрения пользователя создаваемый индекс с именем 'Мой компьютер' ничем не отличается от обычных индексов в плане организации поиска.

Обработка архивов

Поисковая система самостоятельно распаковывает встречающиеся при обходе области поиска архивы и индексирует содержащиеся в них файлы. Список поддерживаемых форматов архивов в текущей версии можно посмотреть на этой странице.

В большинстве случаев архивы внутри архивов также обрабатываются корректно, хотя есть некоторые ограничения. Следует обращать внимание на работу с большими архивами, так как все операции для скорости выполняются в оперативной памяти, так что вложенный большой архив может быстро исчерпать ресурсы оперативной памяти.

Подключение к поисковому серверу

Прежде всего, в локальной сети должен быть установлен и настроен поисковый сервер.

Подключение к серверу выполняется опять таки-через мастер создания индексов. Выбрав на первом шаге "Импорт списка с сервера", Вам остается только следовать за белым кроликом указаниями визарда - ввести адрес сервера и параметры аутентификации, а затем подтвердить импорт.

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

Поиск в индексе

Поиск в созданном индексе предельно прост: в выпадающем списке выбираете имя  индекса (не забудьте включить режим поиска в индексе):

выбор индеса для поиска в главном окне поисковика

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

Обратите внимание на элемент списка "по всем индексам" - он позволяет выполнять поиск среди документов во всех созданных индексах.

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

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

  © Mental Computing 2010
изменено 04-Jun-10