Включение хранилища данных в федеративном поиске Windows

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

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

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

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

  • Иметь возможность принимать GET URL запрос от клиента.

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

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

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

Примечание

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

 

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

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

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

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

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

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

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

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

Поставщик OpenSearch отвечает за сопоставление значений XML-элементов со свойствами системы оболочки Windows, которые могут использоваться приложениями Windows. Но вы не ограничены сопоставлениями по умолчанию стандартных элементов RSS или Atom и можете включать пользовательские XML-элементы в пространство имен Windows для каждого из свойств. Например, можно добавить собственные пользовательские XML-элементы в элемент item для предоставления дополнительных метаданных в 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. Для этого добавьте элемент с именем свойства оболочки Windows и с префиксом системного пространства имен оболочки Windows. В следующем примере показано объявление 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 указано, что значение должно содержать начальную точку (".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 предполагает, что элемент является файлом, и определяет расширение имени файла следующим образом:

  • Если свойство Оболочки Windows System.FileExtension сопоставлено с элементом, поставщик использует это расширение имени файла.
  • Если свойство Оболочки Windows System.FileExtension не сопоставлено, поставщик использует атрибут Type , указанный в корпусе или элементе содержимого. Этот элемент должен содержать MIMEType строку, например "image/jpeg". MIMEType Если объект связан с расширением имени файла, зарегистрированным на клиентском компьютере, элемент считается файлом этого типа. MIMEType Если не связан с расширением имени файла, зарегистрированным на клиентском компьютере, элемент обрабатывается как тип веб-ссылки. Поставщик OpenSearch не пытается проанализировать атрибут Url для поиска расширения имени файла.
  • MIMEType Если связан с расширением имени файла, зарегистрированным на клиентском компьютере, поставщик определяет, является ли расширение имени файла известным типом веб-файлов (.htm, .html, ASPX, PHP, SWF, STM). Если это так, тип файла считается типом веб-ссылки; в противном случае он считается типом файла. Например, если объект связан с расширением MIMEType "text/html" имени файла .htm, этот элемент рассматривается как веб-ссылка, а не как .htm тип файла.

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

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

  • Удаленные индексы с методами проверки подлинности, которые не поддерживаются в федеративном поиске 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 , который находится между поставщиком Windows OpenSearch и внешним источником данных.
  2. Используйте API интерфейса IOpenSearchSource в Windows SDK, чтобы создать соответствующим образом настроенный файл .searchconnector-ms, с помощью которого Windows Обозреватель может вызывать вашу реализацию с параметрами запроса. Затем реализация может возвращать результаты в формате RSS или Atom. Это позволяет реализации предоставлять пользовательский интерфейс проверки подлинности и подключаться к источнику данных с помощью собственного API.

Примечание

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

 

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

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

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

начало работы с помощью федеративного поиска в Windows

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

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

Рекомендации по использованию федеративного поиска Windows

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