Большую часть своей истории человечество училось сохранять полученные знания, доверяя их бумаге. Когда знание стало слишком велико, возникла проблема поиска той заветной бумаги, на которой хранилось бы заветное знание, которое было необходимо здесь и сейчас (то есть, там и тогда). Так возникли библиотеки и архивы. Сегодня, обладая поистине безграничными возможностями получения, накопления и хранения информации, предоставленными нам его превосходительством компьютером, мы столкнулись с той же самой проблемой — как в оптимальные сроки найти именно ту информацию, которая нужна именно здесь и сейчас.
Чтобы понять масштаб проблемы, достаточно покопаться в собственном жёстком диске. Что же говорить о корпоративных информационных системах, бум создания которых мир пережил в последние десятилетия.
Варианты типа "лучший способ навести порядок в архиве — это пожар" отвергаются на первом этапе. Остаётся признать необходимость создания и внедрения относительно нового класса инструментов, к которым относятся корпоративные поисковые системы (Enterprise Search). Проблема, в принципе, не нова. Сами механизмы поиска информации в массивах документов разрабатываются уже в течение десятилетий, однако их оформление в самостоятельный класс программных продуктов произошло только в 2000‑х. За последнее время на рынок был выведен ряд коммерческих программных продуктов, таких как Google Search Appliance, Exalead CloudView, MS SharePoint 2013, Atonomy IDOL, а также несколько проектов с открытым исходным кодом (Apache Solr и др.).
Сегодня, когда накоплен обширный опыт функционирования подобных систем, можно с достаточной чёткостью сформулировать перечень основных требований, которые позволяют отнести систему поиска к разряду интеллектуальных.
Стоит упомянуть ещё несколько "граней таланта" современного ИКП. Он должен быть многоязычным, с функцией автоматического определения языка. Процесс поиска должен происходить с учетом морфологии языка. Безусловно, современный программный продукт, ориентированный на пользователей различного уровня компьютерной продвинутости, должен обладать дружественным интерфейсом, развитой системой подсказок, ассистентных функций (таких как автозаполнение, предложение вариантов и пр.).
Одной из важных интеллектуальных функций современного корпоративного поисковика является возможность генерирования аналитических отчётов, объединяющих в себе элементы различных подсистем корпоративной информационной системы. И ещё одно: не стоит недооценивать важность внутрикорпоративных коммуникаций. И если большинство руководителей и сотрудников корпорации можно достаточно легко убедить в важности повышения эффективности поиска информации внутри компании, то добиться такого же сотрудничества со службой безопасности не так просто.
Необходимо обеспечить чёткое разграничение прав доступа к информации, оснастить систему надёжным инструментарием настройки и контроля доступа. Сегодня для решения этой задачи большинство систем поиска строятся на наследовании прав доступа, принятых для источников информации. То есть при обработке документа учитываются права доступа, и при поиске пользователю доступна только та информация, право на чтение которой он имеет.
Итак, за счёт чего обеспечивается описанный выше функционал? Во-первых, инсталляция системы предусматривает предварительную обработку всей имеющейся информации — её полнотекстовое индексирование, в процессе которого создаётся поисковый индекс, специальные структуры данных, которыми оперирует корпоративная поисковая система. На практике это предусматривает использование модулей-коннекторов, настраиваемых под каждую подсистему корпоративной информационной системы. Коннектор является постоянно действующим и отвечает не только за интеграцию хранящейся в подсистеме информации с поисковой системой, но и за периодическое обновление данных.
На следующем этапе происходит приведение информации к структурированному виду, что включает в себя извлечение текстов и метаданных из файлов различного формата (включая изображения), определение языка и кодировки, преобразование стандартизованных данных в единый формат.
Собственно анализ текста может предусматривать определение словоформ, частей речи и взаимосвязей слов в предложении, анализ эмоциональной окраски текста (что будет весьма полезным в деятельности служб PR и GR), выявление различных сущностей в тексте (имен, географических названий, названий организаций).
В результате создаётся инвертированный список. Это отсортированный список всех слов, из документов, в котором для каждого слова указаны документы, где оно встречается. Этот список и позволяет производить быстрый поиск.
Диапазон применения построенных на этих принципах корпоративных поисковых систем весьма широк. В качестве одного из показательных, хотя и достаточно сложных в реализации, примеров стоит упомянуть систему поиска информации по фондам библиотеки диссертаций РГБ, реализованную корпорацией ЭЛАР. В рамках проекта был создан уникальный для России инструмент для работы с научной информацией.
В системе реализована возможность поиска информации на английском, русском и украинском языках по одиннадцати научным дисциплинам. Объём семантического словаря системы превышает 600 тыс. научных терминов. Созданную систему оснастили возможностями анализа и обобщения данных из различных научных областей. По оценкам специалистов, она вполне сопоставима с такими зарубежными аналогами, как Science Research Portal и Scirus.
К сожалению, в рамках одной статьи невозможно осветить все аспекты выбора подходящей корпоративной поисковой платформы. Базовым основанием для выбора является анализ таких показателей, как количество документов на момент внедрения системы, скорость появления новых документов (или изменения в уже имеющихся), средний объём документа, допустимое время задержки от появления нового документа во внешней системе до его доступности в поисковой системе и планируемая нагрузка — количество запросов в секунду.
В зависимости от полученного результата, определяются параметры аппаратной реализации системы. Хотя есть и достаточно очевидные рекомендации. Поскольку процессы анализа текстов требуют значительных вычислительных ресурсов, соответственно, чем больше процессоров имеет сервер, тем быстрее будет производиться обработка документов. Также большинство производителей ПО рекомендуют использовать RAID-массивы с энергонезависимым кэшем.
При этом общий объём полнотекстового индекса составляет от 50% до 150% общего объёма текста документов. Тем не менее, какой бы мощный сервер вы ни взяли, все поисковые системы имеют предел производительности на одном сервере. Как правило, это не более 10-50 млн документов и не более 5-20 поисковых запросов в секунду. Если потребности планируемой к созданию поисковой системы превышают указанные пределы, необходимо рассмотреть возможность реализации распределенной архитектуры системы.
При ориентации на один из программных продуктов, представленных на рынке, следует принимать во внимание и финансовые аспекты, такие как стоимость лицензий и используемые производителями программного обеспечения схемы лицензирования.
Но всё же, несмотря на кажущуюся сложность аппаратной и программной реализации, в ближайшем будущем ИКП имеют все шансы стать естественной и неотъемлемой частью подавляющего большинства корпоративных информационных систем.