Поделиться через


Настройка хранилища данных для использования в федеративном поиске Windows

Объясняется, как разрешить доступ к хранилищу данных Веб-службе OpenSearch и как избежать потенциальных барьеров для этого.

Этот раздел организован следующим образом:

Условия принятия запроса поиска

Веб-служба OpenSearch, созданная на веб-сервере , должна соответствовать следующим двум требованиям:

  • Будьте в состоянии принять запрос GET URL от клиента.

  • Разрешить внедрение терминов поиска в URL-адрес.

    В следующем примере показано, как поисковый термин может быть внедрен в URL-адрес.

    https://example.com/search.aspx?query=terms&param=mysearchword
    

Заметка

Федеративный поиск не поддерживает отправку POST запросов в веб-службу.

 

Дополнительные сведения о создании URL-адреса см. в разделе "Параметры шаблона URL-адреса" в документации по созданию файла описания OpenSearch в Windows Federated Search.

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

В Windows 7 нет определенного синтаксиса запросов. Поставщик OpenSearch принимает все термины, которые пользователь вводит в поле ввода в проводнике Windows, и кодирует его в URL-адрес. Это делается согласно шаблону URL-адреса, описанному в "Параметры шаблона URL-адреса" в создание файла описания OpenSearch в федеративном поиске Windows.

Пользователи ожидают, что отдельные термины рассматриваются как неявно ANDed вместе. Например, запрос к Microsoft Windows должен возвращать только результаты, содержащие как Windows, так и "Майкрософт".

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

Федеративный поиск Windows поддерживает проверку подлинности на основе Windows и может предоставлять учетные данные веб-службам с помощью следующих протоколов:

  • NTLM.
  • Kerberos.
  • Базовый (только по протоколу https).
  • Другие поставщики поддержки безопасности, установленные в Windows, которые обеспечивают дополнительные возможности запросов. Ознакомьтесь с документацией по пакету SDK интерфейса SSP , чтобы быть в курсе возможного добавления других SSP.

Отправка запросов и возврат результатов поиска в RSS или Atom

Поставщик OpenSearch отвечает за сопоставление значений XML-элементов со свойствами системы Windows Shell, которые могут использоваться приложениями Windows. Но вы не ограничены сопоставлениями элементов стандартных RSS или Atom по умолчанию и можете включать пользовательские XML-элементы в пространство имен Windows для каждого свойства. Например, можно добавить собственные пользовательские XML-элементы в элемент , чтобы предоставить дополнительные метаданные в Windows. Вы также можете сопоставить элементы из других пространств имен XML, например iTunes

Пример выходных данных RSS-канала

В следующем примере выходные данные RSS-канала возвращают один элемент.

<rss version="2.0" xmlns:media="https://search.yahoo.com/mrss/" xmlns:example="https://example.com/namespace">
   <channel>
      <title>Search Results</title>
      <item>
         <title>An example result</title>
         <link>https://example.com/pictures.aspx?id=01</link>
         <description>This is a test of the emergency search results system. If this were a real emergency result, you'd be reading something more useful.</description>
         <pubDate>Wed, 1 Oct 2008 23:12:00 GMT</pubDate>
         <media:content url="https://example.com/pictures/picture01.jpg" fileSize="212889" type="image/jpeg" height="768" width="1024"/>
         <media:thumbnail url="https://example.com/thumbnails/picture01.jpg" height="120" width="160"/>
         <example:dateTaken>Mon, 22 Sep 2008 23:12:00 GMT</example:dateTaken>
      </item>
   </channel>
</rss>

Дополнительные сведения о сопоставлении свойств см. в разделах "Расширенные элементы в федеративном поиске Windows" и "Сопоставления настраиваемых свойств" в "Создание файла описания OpenSearch в федеративном поиске Windows".

Автоматическое сопоставление с свойствами оболочки Windows

В веб-канале RSS можно включить другие XML-элементы, которые автоматически сопоставляются со свойствами системы Windows Shell. Для этого добавьте элемент с именем, состоящим из имени свойства Оболочки Windows с префиксом, указанным пространством имен системы Windows Shell. В следующем примере показано объявление пространства имен win=" http://schemas.microsoft.com/windows/2008/propertynamespace" и включение элемента для сопоставления свойств win:System.Contact.PrimaryEmailAddress:

<rss version="2.0" xmlns:example="https://example.com/schema/2009" xmlns:win="http://schemas.microsoft.com/windows/2008/propertynamespace">
...
   <item>
      <title>Someone</title>
      <win:System.Contact.PrimaryEmailAddress>someone@example.com
   </win:System.Contact.PrimaryEmailAddress>
   </item>

Префикс пространства имен, используемый здесь ("win") является предложением; можно использовать любой префикс. Однако необходимо использовать точные имена свойств Оболочки Windows и включать точный универсальный идентификатор ресурса (URI), как показано в следующем примере:

http://schemas.microsoft.com/windows/2008/propertynamespace

О системе свойств оболочки Windows

Windows определяет полный список системных свойств и формат типа значения, необходимый для каждого свойства. Документация по свойству System.FileExtension Window Shell, например, указывает, что значение должно содержать ведущую точку (например, ".docx", а не "docx").

значения даты и времени

Предпочтительный формат даты и времени — ISO-8601, как показано в следующем примере:

2008-01-16T 19:20:30:.45+01:00

Разработчики .NET должны использовать класс DateTime с ToString("R") для вывода правильного формата.

Дополнительные сведения о сопоставлении свойств см. в статье "Расширенные элементы в федеративном поиске Windows" в создании файла описания OpenSearch в федеративном поиске Windows.

Понимание того, как элементы Windows сопоставляются с типами файлов

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

В следующей блок-схеме показано, как Windows определяет тип файла элемента.

блок-схема, показывающая пути от элемента к решениям по его обработке как элемент типа веб-ссылки или как тип файла

Поставщик OpenSearch выполняет следующие действия, чтобы сопоставить элемент с типом файла:

  • Определите, следует ли рассматривать элемент как файл или веб-ссылку.
  • Определите правильное расширение имени файла, используемое.

Например, если элемент имеет URL-адрес ссылки, использующий путь к файловой системе (например, file:///\\server\share\etc\item.ext), поставщик OpenSearch обрабатывает ссылку как файл и определяет тип по расширению имени файла, используемому в пути (.ext в этом примере).

Если элемент использует стандартный корпус RSS или MediaRSS media:content, поставщик OpenSearch предполагает, что элемент является файлом и определяет расширение имени файла следующим образом:

  • Если для элемента сопоставлено свойство System.FileExtension Windows Shell, поставщик использует это расширение имени файла.
  • Если свойство Windows Shell System.FileExtension не сопоставлено, поставщик использует атрибут Type, указанный в корпусе или элементе содержимого. Этот элемент должен содержать строку MIMEType, например "image/jpeg". Если MIMEType связан с расширением имени файла, зарегистрированным на клиентском компьютере, элемент считается файлом этого типа. Если MIMEType не связан с расширением имени файла, зарегистрированным на клиентском компьютере, элемент рассматривается как тип веб-ссылки. Поставщик OpenSearch не предпринимает попыток анализировать атрибут URL-адрес, чтобы определить расширение имени файла.
  • Если MIMEType связан с расширением имени файла, зарегистрированным на клиентском компьютере, поставщик определяет, является ли расширение имени файла известным типом веб-файла (.htm, .html, .asp, .aspx, .php, .swf, stm). В этом случае тип файла считается типом веб-ссылки; в противном случае он считается типом файла. Например, если MIMEType "text/html" связан с расширением имени файла .htm, этот элемент считается веб-ссылкой вместо типа файла .htm.

Предотвращение потенциальных барьеров для включения хранилища данных

Некоторые хранилища данных не предоставляют веб-службу, совместимую с OpenSearch, но все же могут быть подключены к поисковой системе Windows Federated Search. К таким хранилищам данных относятся:

  • Удаленные индексы с методами проверки подлинности, которые не поддерживаются в федеративном поиске Windows 7.

    Примеры включают проверку подлинности на основе форм и другие пользовательские методы проверки подлинности.

  • Если в общедоступном магазине есть общедоступные веб-API, любой пользователь может написать другую веб-службу, которая совместима с OpenSearchи вызывает эти API в фоновом режиме.

    Примеры включают библиотеку Конгресса и базы данных медицинских исследований.

  • Частные корпоративные хранилища данных или индексы, а также устаревшие хранилища управления содержимым, для которых может быть невозможно реализовать интерфейс.

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

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

  1. Напишите промежуточную веб-службу, которая может принимать запросы Windows 7.
  2. Подключитесь к источнику данных и получите результаты запроса.
  3. Переформатируйте результаты в формате RSS или Atom.
  4. Верните результаты клиенту Windows 7.
  5. Обратите внимание, что для корпоративных служб данных и многих служб интернет-данных может потребоваться передать учетные данные пользователя от имени веб-службы, чтобы выполнить обрезку результатов на основе разрешений пользователя.

Использовать существующую поисковую систему, если вы не можете включить общедоступное хранилище данных:

  1. Используйте общедоступную поисковую систему, которая уже поддерживает OpenSearch с RSS. Это можно сделать, предоставив пользователям файл OSDX с шаблоном URL-адреса, который ограничивает результаты только для конкретного домена.

  2. Смотрите следующий пример описания OpenSearch для поиска только справочного содержимого Windows с помощью запроса к live.com.

    <?xml version="1.0" encoding="UTF-8"?>
    <OpenSearchDescription xmlns="https://a9.com/-/spec/opensearch/1.1/">
      <ShortName>Windows Help</ShortName>
      <Description>Search Windows Help using the live.com search engine</Description>
      <Language></Language>
      <Url type="text/html" template="https://windowshelp.microsoft.com/windows/search.aspx?=&amp;qu={searchTerms}"/>
      <Url type="application/rss+xml" template="https://api.search.live.com/rss.aspx?source=web&amp;query={searchTerms} site:windowshelp.microsoft.com&amp;web.count=50"/>
    </OpenSearchDescription>
    

Использовать существующий сервер индексирования, поддерживающий OpenSearch, если нельзя включить собственные корпоративные хранилища данных или индексы:

  1. Выберите существующий сервер индексирования, который поддерживает OpenSearch для индексирования содержимого, например сервер поиска SharePoint.
  2. Создайте OSDX-файл, который ограничивает результаты из индекса SharePoint только теми, которые происходят с вашего сервера, используя их синтаксис KeyWord в шаблоне URL-адреса.

Для записи клиентского хранилища данных, если решение только на стороне сервера не работает:

  1. Напишите клиентский источник данных OpenSearch, который находится между поставщиком OpenSearch в Windows OpenSearch и внешним источником данных.
  2. Используйте api интерфейса IOpenSearchSource в пакете SDK для Windows, чтобы создать соответствующий настроенный файл .searchconnector-ms, с помощью которого проводник Windows может вызвать реализацию с параметрами запроса. После этого реализация может возвращать результаты, отформатированные в формате RSS или Atom. Это позволяет реализации предоставлять пользовательский интерфейс проверки подлинности и подключаться к источнику данных с помощью собственного API.

Заметка

Открытие OSDX-файла создает файл .searchconnector-ms (соединитель поиска) в каталоге %userprofile%/search и помещает ссылку на него в каталоге %userprofile%/links.

 

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

Дополнительные сведения о реализации федеративного поиска в удаленных хранилищах данных с помощью технологий OpenSearch в Windows 7 и более поздних версиях см. в разделе "Дополнительные ресурсы" по Федеративный поиск в Windows.

федеративный поиск в Windows

Начало работы с федеративным поиском в Windows

Подключение вашей веб-службы в федеративном поиске Windows

Создание файла описания для OpenSearch в интегрированном поиске Windows

Следование передовому опыту для федеративного поиска Windows

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