От знания тонкостей архитектуры поиска — к обоснованным решениям о развертывании

В среде SharePoint пользователи могут выполнять поисковые операции из сайтов группы (team site), размещенных в службе Windows SharePoint Services, и из сайтов портала (portal site), размещенных в Microsoft Office SharePoint Portal Server 2003. Определения сайтов группы, портала и других типов приведены во врезке «Типы узлов SharePoint». В SharePoint Services и Portal Server работает один и тот же поисковый механизм, но из-за различных способов его применения результаты поиска для конечных пользователей оказываются разными. Знание различий в архитектурах механизма поиска двух продуктов позволят выбрать оптимальный для пользователей вариант: задействовать SharePoint Services, Portal Server или оба продукта вместе. Если SharePoint еще не развернут на предприятии, изучение особенностей архитектуры поиска поможет спланировать процесс развертывания.

Основные компоненты поиска

Microsoft Search Service (MSSearch) — общая служба поиска, которую в разной степени используют продукты Microsoft, в том числе SharePoint Services и Portal Server. Она поддерживает три языка запросов — Query Dialect 1, полнотекстовые расширения SQL и Query Dialect 2, что позволяет пользователям выполнять запросы различных видов. MSSearch создает полнотекстовые индексы информационного наполнения и свойств структурированных и полуструктурированных данных и обеспечивает быстрый лингвистический поиск в этих данных.

Однако индекс будет полезным, только если он поддерживает нужные пользователям источники информации (например, общие каталоги, Web-контент, папки Exchange Server, сайты на основе SharePoint) и типы данных внутри этих источников, обеспечивая широкие возможности извлечения. Приложения, использующие индекс, должны предоставить информацию для индексации, форматировать запросы пользователей и возвращать результаты поиска запрашивающим клиентам. Следовательно, эти приложения фактически контролируют весь процесс поиска, и в некоторых контроль организован гораздо лучше, чем в остальных. Например, Portal Server предоставляет информацию для индексации из многих источников, в том числе общих папок Exchange и баз данных IBM Lotus Notes, а полнотекстовая индексация SQL Server предоставляет информацию только из таблиц SQL Server.

Полнотекстовая индексация MSSearch обеспечивается несколькими ключевыми компонентами. На рисунке показаны следующие компоненты.

Рисунок. Архитектура механизма поиска SharePoint Portal Server
  • Обработчики протоколов (protocol handlers). Они обращаются к данным через определенный протокол или из определенного хранилища. Типовые обработчики протоколов обеспечивают доступ к данным из общих каталогов, Web-узлов, общих папок, Lotus Notes и баз данных SQL Server. Обработчик протоколов использует URL-адреса, передаваемые ему сборщиком.
  • Сборщик (gatherer). Обслуживает очередь URL-адресов, к которым нужно обращаться через различные протоколы. Для каждого извлекаемого документа сборщик организует поток контента из обработчика протоколов и передает его в соответствующий фильтр.
  • Фильтры (filter, также называются IFilter). Извлекают текстовую информацию из форматированных документов и передают строки текста и пары свойство/значение в механизм индексации. Например, Microsoft Office IFilter извлекает термины из файлов Microsoft Word, Excel и PowerPoint. Другие фильтры работают с HTML или сообщениями электронной почты. Независимые поставщики предоставляют другие специализированные фильтры; например, компания Adobe Systems выпускает PDF IFilter. Без IFilter невозможно проиндексировать текст внутри файла.
  • Разделители слов (word breaker) и выделители основы слов (stemmer). Разделители слов определяют границы слов в потоке символов в запросе или документ анализируется, чтобы разделить составные слова и фразы для полнотекстового индексирования. Выделитель основы слов извлекает корневую форму данного слова. В некоторых языках выделитель расширяет корневую форму, образуя различные формы слова, например running, ran и runner для корневого слова run.
  • Индексатор (indexer). Готовит инвертированный индекс контента. Инвертированный индекс - структура данных, в которой каждому термину выделена строка. Каждая строка содержит сведения о документах, в которых встречается термин, числе вхождений и относительной позиции термина внутри каждого документа. Благодаря инвертированному индексу можно быстро определить степень соответствия документов критерию поиска с использованием статистических и вероятностных формул.
  • Оповещения (alert). Извещают пользователей в случаях, когда новый или обновленный контент соответствует сохраненным ими запросам, а также при изменениях документов, сайтов, списков и библиотек.
  • AutoCat. Обеспечивает способ автоматической каталогизации элементов сайта портала с существующими элементами в других областях. AutoCat использует Topic Assistant, который предлагает другие места, где элементы могут быть добавлены к спискам или библиотекам документов.
  • Каталоги (catalog). Хранят полнотекстовые индексы в файловой системе на сервере, на котором запущена служба MSSearch. Приложения взаимодействуют с MSSearch при обслуживании индексов и каталогов.

Отдельные продукты также дополняют поисковую архитектуру MSSearch. Например, Portal Server добавляет в поисковую архитектуру оповещения, а независимые поставщики могут добавить фильтры и обработчики протоколов. Однако не все продукты используют поисковые компоненты MSSearch. Например, только Portal Server использует оповещения, но фильтры IFilter полезны любому продукту, в котором применяется архитектура MSSearch.

Овладев основами поисковой архитектуры, можно разобраться в различиях между способами ее использования в SharePoint Services и Portal Server. Также будет показано, каким образом эти различия приводят к разным результатам поиска в узлах SharePoint для конечных пользователей.

Поиск с помощью служб SharePoint Services

В службах SharePoint Services используется полнотекстовая индексация SQL Server, которая в свою очередь взаимодействует с MSSearch. Таким образом, поиск в сайтах групп ограничен возможностями полнотекстовой индексации SQL Server. Обязательное условие для поиска в сайте группы — использование службами SharePoint Services в качестве механизма хранения данных SQL Server, а не Windows MSDE (WMSDE). По умолчанию полнотекстовая индексация отключена, но ее можно активизировать со страницы SharePoint Central Administration. Если полнотекстовая индексация отключена, то поисковые ссылки на сайтах группы не отображаются.

Полнотекстовая индексация SQL Server обеспечивает применение обработчика протоколов для MSSearch, который распознает лишь содержимое баз данных и таблиц SQL Server. Поэтому результаты поиска, запущенного с сайта группы, содержат только информацию из SQL Server. Поиск, активизированный в SharePoint Services, применяется ко всем сайтам группы, так как информация из различных сайтов группы не разделена по разным таблицам. Например, таблица Docs в базе данных контента содержит документы, сохраненные во всех библиотеках во всех сайтах группы, которые используют базу данных контента.

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

Весьма негибкие функции поиска SharePoint Services для предприятий не предназначены. SharePoint Services индексирует только содержимое документов, но не свойства, которые могли бы углубить описание содержащейся в документе информации. Даже если поисковый механизм проиндексировал свойства документа, интерфейс запроса не обеспечивает расширенного поиска, и пользователи не смогут найти нужную информацию. Пользователи ограничены полнотекстовым поиском контента. Кроме того, функции поиска SharePoint Services плохо масштабируются, что существенно ограничивает их применение в больших фермах серверов, которые могут содержать миллионы документов в тысячах сайтов групп.

Поиск с использованием SharePoint Portal Server

Portal Server обеспечивает поисковую функциональность уровня предприятия. В базовой индексной архитектуре серьезных изменений по сравнению с SharePoint Point Portal Server 2001 нет, но масштабируемость, управляемость, удобство эксплуатации и отказоустойчивость значительно возросли.

По умолчанию Portal Server располагает обработчиками протоколов для любых сайтов SharePoint, общих каталогов, общих папок Exchange, Lotus Notes и любого Web-узла. Благодаря поддержке сайтов SharePoint можно искать информацию о документах, перечислять данные из сайтов группы и каталога сайтов, а также сведения о пользователях, хранящиеся в базе данных профилей Portal Server. В отличие от SharePoint Services, можно расширить диапазон поиска Portal Server, охватив сайт группы SharePoint Services и все его дочерние сайты или всю структуру портала Portal Server.

Portal Server располагает фильтрами IFilter для документов Microsoft Office, HTML-, TIFF- и текстовых файлов. TIFF IFilter обеспечивает исследование текстового контента сохраненных факсов с использованием технологии OCR (оптическое распознавание символов). Portal Server использует MIME IFilter, поставляемый с Windows 2000, для фильтрации сообщений из общих папок Exchange.

Portal Server индексирует не только текстовый контент, но и свойства, связанные с элементом данных. Свойства могут быть связаны с исходным контентом и, как правило, используются для его более углубленного описания. Например, в документах Microsoft Office имеются встроенные и специальные свойства, метатэги — свойства внутри HTML-файлов, а столбцы в списках являются свойствами сайтов SharePoint. Индексируя свойства, можно существенно повысить точность поиска по сравнению с полнотекстовым поиском только контента. Например, индексация свойств помогает отыскать сотрудников, принадлежащих к определенному подразделению.

Язык запросов Portal Server поддерживает полнотекстовые расширения SQL Server, которые позволяют вести поиск с логическими условиями и учетом различных форм слов, а также углубленный поиск на основе свойств. Конечные пользователи могут вести простой и расширенный поиск с использованием готового Web-компонента Search.

Кроме того, служба Search Web Service обеспечивает настройку поисковых решений. Например, пользователи Word могут применять службу Search Web Service для поиска в сайтах портала непосредственно через панель задач Research (экран 1).

Экран 1. Панель задач Research в поисковом механизме SharePoint Portal Server

Наряду с более удобным механизмом индексации и эффективным поиском главное преимущество Portal Server для конечных пользователей заключается в способе отображения результатов поиска. С помощью Search Web Page пользователю легко найти несколько готовых динамических видов и манипулировать набором результатов. Это обеспечивает возможность оптимальной группировки и сортировки результатов. На экране 2 показан набор результатов поиска, сгруппированный по автору. Кроме того, пользователь может вывести на экран больше или меньше информации и назначить оповещение для поискового запроса, который генерировал этот набор результатов.

Экран 2. Результаты поиска SharePoint Portal Server, сгруппированные по автору

Объединяем методы поиска SharePoint

В развернутом по умолчанию экземпляре Portal Server, который использует SQL Server в качестве внутреннего компонента, полнотекстовая индексация активизирована для сайтов группы. Полнотекстовая индексация означает, что пользовательский интерфейс поиска будет отображаться на каждом сайте группы, созданном с использованием Portal Server. Однако пользовательский интерфейс поиска для сайта группы отличается от интерфейса пользователя на уровне портала. На уровне портала загружается страница search.aspx, которая загружает Web-компонент SearchResults. Но из сайта группы, который является частью сайта портала, загружается страница SearchResults, и, хотя в ней может использоваться Web-компонент SearchResults, интерфейс пользователя будет иным. Кроме того, сайты группы, созданные через Portal Server, а не из изолированной системы SharePoint Services, автоматически «связываются» с порталом. Можно подумать, что, поскольку сайт группы создан из сайта портала, любая операция поиска, выполненная из сайта группы, будет направлена на портал, но в действительности это не так. Даже если сайт группы создан из сайта портала, в нем все равно используется поисковый механизм SharePoint Services, а не механизм Portal Server.

Чтобы задействовать преимущества более мощных функций поиска Portal Server, необходимо направить запрос на сайт портала, если сайт группы связан с этим сайтом портала. Для связанного сайта группы ссылка в результатах локального поиска перенаправляет пользователя на сайт портала. Навигационная подсказка, размещенная на сайте группы, позволяет перейти к сайту портала. Если сайт группы не связан с сайтом портала или полнотекстовая индексация отключена, пользователь не сможет перейти от сайта группы к сайту портала для выполнения поиска.

Сайт группы можно настроить так, чтобы разрешить поиск на сайте портала. Например, можно спроектировать шаблон сайта SharePoint Services с Web-компонентом Search, который автоматически ведет поиск в портале. Кроме того, независимые компании разработали Web-компоненты, чтобы повысить эффективность поиска SharePoint Services.

Итак, очевидно, что пользователям важно иметь возможность осуществлять поиск на сайтах SharePoint и получать точные результаты. В SharePoint хранится ценная деловая информация, и плодотворная работа компании невозможна, если сотрудники не могут найти нужные данные. Чтобы помочь пользователям повысить эффективность поиска, необходимо тщательно продумать план и разработать оптимальные способы разделения индексов и источников информации, а также методы интеграции поискового механизма Portal Server в другие сайты группы и, возможно, внешние приложения.

Кевин Лаахс (kevin.laahs@hp.com) — главный консультант группы HP Services Advanced Technology Group. Соавтор книги Microsoft SharePoint Technologies: Planning, Design, and Implementation (издательство Digital Press).


Дополнительные ресурсы

Дополнительные сведения о MSSearch можно найти в «Microsoft Search Service» по адресу http://msdn.microsoft.com/library/default.asp?url=/library/en-us/architec/8_ar_cs_5tid.asp.

Об интеграции поискового механизма SharePoint Portal Server 2003 в панель задач Research комплекса Office 2003: http://weblogs.asp.net/wkriebel/archive/2004/04/27/121220.aspx.

Загрузить PDF IFilter компании Adobe Systems: http://www.adobe.com/support/downloads/detail.jsp?ftpID=2611.


Типы узлов SharePoint

Для эффективного поиска SharePoint, настройки и индексации контента полезно знать все места, где могут храниться данные. Ниже описаны различные типы Web-узлов в стандартной реализиции SharePoint Portal Server и Windows SharePoint Services и их характеристики.

Сайт группы (team site)

  • Управляется SharePoint Services.
  • Располагает базовыми компонентами для совместной работы, такими как библиотеки документов, дискуссии и списки.
  • Используется специализированными группами. Членство сайта группы обычно закрытое.
  • Может быть создан самостоятельно с использованием внутри экземпляра SharePoint Services или из раздела Sites в сайте портала Portal Server.
  • Единственный виртуальный сервер Microsoft IIS поддерживает тысячи сайтов группы. Сайт группы может быть связан или не связан с сайтом портала.

Сайт портала (portal site)

  • Портал Portal Server с управлением со стороны Portal Server.
  • Централизованный узел для поиска и управления информацией.
  • Как правило, открытое членство.
  • Один сайт портала на виртуальный сервер IIS.

Мой сайт (My Site)

  • Управление через Portal Server.
  • Один My Site для одного пользователя сайта портала. Если развернуты общие службы, можно иметь один My Site для пользователя на всех сайтах портала, которые совместно задействуют службы.

Область портала (portal area)

  • Управление через Portal Server.
  • Используется, чтобы сгруппировать информацию по одной теме внутри сайта портала.
  • Обеспечивает навигацию по контенту в сайте портала.
  • Много областей портала в одном сайте портала.

Web-узел, отличный от SharePoint

  • Любой другой Web-узел, не управляемый через Portal Server или SharePoint Services.
  • Сайты в Internet или сайты приложений на предприятии.