Włączanie repozytorium danych do usługi Windows Federated Search

W tym artykule wyjaśniono, jak umożliwić dostęp do magazynu danych przez usługę internetową OpenSearch i jak uniknąć potencjalnych barier w tym celu.

Ten temat jest zorganizowany w następujący sposób:

Warunki akceptacji żądania wyszukiwania

Usługa internetowa OpenSearch utworzona na serwerze internetowym musi spełniać następujące dwa wymagania:

  • Mieć możliwość akceptowania GET URL zapytania od klienta.

  • Zezwalaj na osadzanie terminów wyszukiwania w adresie URL.

    W poniższym przykładzie pokazano, jak można osadzić termin wyszukiwania w adresie URL.

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

Uwaga / Notatka

Wyszukiwanie federacyjne nie obsługuje wysyłania żądań POST do usługi internetowej.

 

Aby uzyskać więcej informacji na temat konstruowania adresu URL, zobacz artykuł "Url Template Parameters" (Parametry szablonu adresu URL) w temacie Creating an OpenSearch Description File in Windows Federated Search (Tworzenie pliku opisu opensearch w usłudze Wyszukiwania federacyjnego systemu Windows).

Obsługiwana składnia zapytania

W systemie Windows 7 nie jest oczekiwana określona składnia zapytania. Dostawca OpenSearch akceptuje wszelkie terminy wprowadzone przez użytkownika w polu wejściowym w Eksploratorze Windows i koduje je w adresie URL. Robi to zgodnie z szablonem adresu URL opisanym w sekcji "Parametry szablonu adresu URL" w temacie Tworzenie pliku opisu OpenSearch w usłudze Wyszukiwania federacyjnego systemu Windows.

Użytkownicy oczekują, że oddzielne terminy są traktowane jako niejawnie połączone ze sobą. Na przykład zapytanie "Microsoft Windows" powinno zwracać tylko wyniki zawierające zarówno "Windows" jak i "Microsoft".

Obsługiwane protokoły uwierzytelniania

Usługa Windows Federated Search obsługuje uwierzytelnianie oparte na systemie Windows i może udostępniać poświadczenia usługom internetowym za pośrednictwem następujących protokołów:

  • NTLM.
  • Kerberos.
  • Podstawowa (tylko za pośrednictwem protokołu HTTPS).
  • Inni dostawcy obsługi zabezpieczeń (SSP) zainstalowani w systemie Windows, którzy zapewniają dodatkową pojemność zapytań. Zapoznaj się z dokumentacją zestawu SDK interfejsu SSP, aby być na bieżąco z potencjalnym dodaniem innych SSP.

Wysyłanie zapytań i zwracanie wyników wyszukiwania w funkcji RSS lub atom

Dostawca OpenSearch jest odpowiedzialny za mapowanie wartości elementów XML na właściwości systemu Windows Shell, które mogą być używane przez aplikacje systemu Windows. Nie ogranicza się jednak do domyślnych mapowań standardowych elementów RSS lub Atom i może zawierać niestandardowe elementy XML w przestrzeni nazw systemu Windows dla każdej właściwości. Możesz na przykład dodać własne niestandardowe elementy XML w elemencie elementu, aby udostępnić dodatkowe metadane w systemie Windows. Elementy można również mapować z innych przestrzeni nazw XML, takich jak iTunes

Przykład danych wyjściowych kanału informacyjnego RSS

Następujące przykładowe dane wyjściowe kanału informacyjnego RSS zwracają jeden element.

<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>

Aby uzyskać bardziej szczegółowe informacje na temat mapowania właściwości, zobacz sekcje "Extended Elements in Windows Federated Search" (Elementy rozszerzone w usłudze Wyszukiwania federacyjnego Windows) i "Custom Property Mappings" (Mapowania właściwości niestandardowych) w temacie Tworzenie pliku opisu OpenSearch w usłudze Wyszukiwania federacyjnego systemu Windows.

Automatyczne mapowanie na właściwości powłoki systemu Windows

W ramach elementów kanału RSS można dodać inne elementy XML, które automatycznie odwzorowują się na właściwości systemu Windows Shell. W tym celu uwzględnij element nazwany na podstawie właściwości powłoki Windows i poprzedzony przestrzenią nazw systemu powłoki Windows. Poniższy przykład ilustruje deklarację win=" http://schemas.microsoft.com/windows/2008/propertynamespace" przestrzeni nazw i włączenie elementu do mapowania win:System.Contact.PrimaryEmailAddress właściwości:

<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>[email protected]
   </win:System.Contact.PrimaryEmailAddress>
   </item>

Prefiks przestrzeni nazw używany tutaj ("win") jest sugestią. Możesz użyć dowolnego prefiksu. Należy jednak użyć dokładnych nazw właściwości powłoki systemu Windows i musi zawierać dokładny identyfikator URI (Uniform Resource Identifier), jak pokazano w poniższym przykładzie:

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

Informacje o właściwościach systemu Windows Shell

System Windows definiuje pełną listę właściwości systemu i format typu wartości wymagany dla każdej właściwości. Dokumentacja właściwości Powłoki okien System.FileExtension określa na przykład, że wartość musi zawierać kropkę wiodącą (".docx" i nie "docx").

Wartości daty i godziny

Preferowany format daty i godziny to ISO-8601, jak pokazano w poniższym przykładzie:

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

Deweloperzy platformy .NET powinni użyć klasy DateTime z ToString("R") , aby wyświetlić poprawny format.

Aby uzyskać bardziej szczegółowe informacje na temat mapowania właściwości, zobacz sekcję "Elementy rozszerzone w usłudze Wyszukiwania federacyjnego systemu Windows" w temacie "Tworzenie pliku opisu OpenSearch w usłudze Wyszukiwania federacyjnego Windows".

Informacje o tym, jak system Windows mapuje elementy na typy plików

Wyszukiwanie w interfejsie użytkownika Eksploratora Windows umożliwia użytkownikom traktowanie wyników jako plików, gdy element RSS wskazuje plik przechowywany zdalnie. Użytkownik może przeciągać i upuszczać elementy na pulpicie, a interfejs użytkownika Eksploratora Windows wyświetla poprawną ikonę i udostępnia odpowiednie menu skrótów. Jeśli element RSS nie wskazuje zdalnie przechowywanego pliku, plik jest traktowany jako link, a użytkownicy mogą wykonywać na nim akcje, takie jak tworzenie skrótu lub otwieranie go w przeglądarce.

Poniższy schemat blokowy pokazuje, jak system Windows określa typ pliku elementu.

schemat blokowy przedstawiający ścieżki prowadzące od elementu do decyzji o traktowaniu go jako element typu łącze internetowe lub jako element typu plik

Dostawca OpenSearch wykonuje następujące kroki, aby zamapować element na typ pliku:

  • Określ, czy element powinien być traktowany jako plik, czy link internetowy.
  • Zidentyfikuj poprawne rozszerzenie nazwy pliku do użycia.

Jeśli na przykład element ma adres URL łącza, który używa ścieżki systemu plików (na przykład file:///\\server\share\etc\item.ext), dostawca OpenSearch traktuje link jako plik i określa typ przez rozszerzenie nazwy pliku używane w ścieżce (.ext w tym przykładzie).

Jeśli element używa standardowej obudowy RSS lub mediaRSS media:content , dostawca OpenSearch zakłada, że element jest plikiem i identyfikuje rozszerzenie nazwy pliku w następujący sposób:

  • Jeśli właściwość System.FileExtension powłoki systemu Windows została zamapowana dla elementu, dostawca używa tego rozszerzenia nazwy pliku.
  • Jeśli właściwość System.FileExtension powłoki systemu Windows nie została zamapowana, dostawca używa atrybutu Type określonego w obudowie lub elemecie zawartości. Ten element powinien zawierać MIMEType ciąg, taki jak "image/jpeg". MIMEType Jeśli element jest skojarzony z rozszerzeniem nazwy pliku, który jest zarejestrowany na komputerze klienckim, element jest uważany za plik tego typu. Jeśli element MIMEType nie jest skojarzony z rozszerzeniem nazwy pliku zarejestrowanym na komputerze klienckim, element jest traktowany jako typ łącza internetowego. Dostawca OpenSearch nie próbuje przeanalizować atrybutu Url w celu zlokalizowania rozszerzenia nazwy pliku.
  • MIMEType Jeśli element jest skojarzony z rozszerzeniem nazwy pliku zarejestrowanym na komputerze klienckim, dostawca określa, czy rozszerzenie nazwy pliku jest znanym typem pliku sieci Web (.htm, .html, .asp, .aspx, .php, .swf, stm). Jeśli tak, typ pliku jest traktowany jako typ łącza internetowego; w przeciwnym razie jest traktowany jako typ pliku. Jeśli na przykład MIMEType "text/html" element jest skojarzony z rozszerzeniem nazwy pliku .htm, ten element jest uważany za link internetowy zamiast jako typ pliku .htm.

Unikanie potencjalnych przeszkód w uruchamianiu magazynu danych

Niektóre magazyny danych nie udostępniają usługi internetowej zgodnej z usługą OpenSearch, ale nadal mogą być połączone z usługą Windows Federated Search. Takie magazyny danych obejmują:

  • Zdalne indeksy z metodami uwierzytelniania, które nie są obsługiwane w usłudze Wyszukiwania federacyjnego systemu Windows 7.

    Przykłady obejmują uwierzytelnianie oparte na formularzach i inne niestandardowe metody uwierzytelniania.

  • Jeśli magazyn publiczny o wysokiej wartości ma publiczne internetowe interfejsy API, każdy może napisać inną usługę internetową zgodną z usługą OpenSearch i wywołać te interfejsy API w tle.

    Przykłady obejmują Bibliotekę Kongresu i bazy danych badań medycznych.

  • Zastrzeżone repozytoria danych lub indeksy przedsiębiorstwa oraz starsze systemy zarządzania treścią, dla których wdrożenie interfejsu użytkownika może być niemożliwe.

Istnieją jednak alternatywy, które mogą uniknąć barier umożliwiających korzystanie z magazynu danych. Poniżej przedstawiono niektóre z tych alternatyw:

Aby napisać usługę internetową pośredniczącą, gdy nie można zmodyfikować usługi internetowej dla istniejącego źródła danych lub usługa internetowa oferuje niestandardowy interfejs API:

  1. Napisz pośrednią usługę internetową, która może zaakceptować zapytanie systemu Windows 7.
  2. Połącz się ze źródłem danych i pobierz wyniki zapytania.
  3. Przeformatuj wyniki w formacie RSS lub Atom.
  4. Zwróć wyniki do klienta systemu Windows 7.
  5. Należy pamiętać, że w przypadku usług danych przedsiębiorstwa i wielu internetowych usług danych może być konieczne przekazanie poświadczeń użytkownika przez usługę internetową w celu dostosowania wyników na podstawie uprawnień użytkownika.

Aby użyć istniejącej wyszukiwarki, gdy nie można włączyć publicznego repozytorium danych:

  1. Użyj publicznej wyszukiwarki, która obsługuje już funkcję OpenSearch z funkcją RSS. Możesz to zrobić, udostępniając użytkownikom plik osdx z szablonem adresu URL, który ogranicza wyniki tylko do tych dla określonej domeny.

  2. Zapoznaj się z poniższym przykładem opisu OpenSearch, aby wyszukać tylko zawartość Pomocy systemu Windows przy użyciu zapytania do 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>
    

Aby użyć istniejącego serwera indeksowania obsługującego OpenSearch, jeśli nie można włączyć zastrzeżonych zasobów danych lub indeksów przedsiębiorstwa:

  1. Wybierz istniejący serwer indeksowania, który obsługuje usługę OpenSearch , aby indeksować zawartość, taką jak program SharePoint Search Server.
  2. Utwórz plik osdx, który ogranicza wyniki z indeksu programu SharePoint tylko do tych z serwera przy użyciu ich składni KeyWord w szablonie adresu URL.

Aby zapisać magazyn danych po stronie klienta, jeśli rozwiązanie tylko po stronie serwera nie działa:

  1. Napisz źródło danych OpenSearch po stronie klienta, które znajduje się między dostawcą Windows OpenSearch i zewnętrznym źródłem danych.
  2. Użyj interfejsu API IOpenSearchSource w ramach zestawu SDK dla Windows, aby utworzyć odpowiednio skonfigurowany plik .searchconnector-ms, dzięki któremu Eksplorator Windows może wywołać Twoją implementację z parametrami zapytania. Implementacja może następnie zwracać wyniki sformatowane w formacie RSS lub Atom. Umożliwiając to, Twoja implementacja może zapewnić niestandardowy interfejs użytkownika uwierzytelniania i połączyć się ze źródłem danych za pomocą własnego interfejsu API.

Uwaga / Notatka

Otwarcie pliku osdx tworzy plik .searchconnector-ms (łącznik wyszukiwania) w katalogu %userprofile%/searches i umieszcza link do niego w katalogu %userprofile%/links.

 

Dodatkowe zasoby

Aby uzyskać dodatkowe informacje na temat implementowania federacji wyszukiwania w zdalnych magazynach danych przy użyciu technologii OpenSearch w systemie Windows 7 lub nowszym, zobacz "Dodatkowe zasoby" w federacyjnej funkcji wyszukiwania w systemie Windows.

Wyszukiwanie federacyjne w systemie Windows

Wprowadzenie do wyszukiwania federacyjnego w systemie Windows

Łączenie usługi internetowej w usłudze Windows Federated Search

Tworzenie pliku opisu opensearch w usłudze Windows Federated Search

Poniższe najlepsze rozwiązania w usłudze Windows Federated Search

Wdrażanie łączników wyszukiwania w usłudze Windows Federated Search