共用方式為


在 Windows 同盟搜尋中啟用您的資料存放區

說明如何讓 OpenSearch Web 服務存取您的資料存放區,以及如何避免進行此作業的潛在障礙。

本主題的組織方式如下:

接受搜尋請求的條件

您在網頁伺服器上建立的 OpenSearch Web 服務 必須 符合下列兩個需求:

  • 能夠接受來自用戶端的 GET URL 查詢。

  • 允許搜尋字詞內嵌在URL中。

    下列範例示範搜尋字詞如何內嵌在URL中。

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

注意

同盟搜尋不支援將 POST 要求傳送至 Web 服務。

 

如需建構 URL 的詳細資訊,請參閱 在 Windows 同盟搜尋中建立 OpenSearch 描述檔案中的

支援的查詢語法

Windows 7 中沒有預期的特定查詢語法。 OpenSearch 提供者接受使用者在 Windows 檔案總管輸入方塊中輸入的任何字詞,並將它編碼為 URL。 它會根據 Windows 聯合搜尋中建立 OpenSearch 描述檔案的「URL 範本參數」中所描述的 URL 範本進行操作。

用戶預期個別字詞會隱含地以 AND 組合在一起。 例如,「Microsoft Windows」的查詢應該只會傳回同時包含 「Windows」 和 “Microsoft” 的結果。

支援的驗證通訊協定

Windows 同盟搜尋支援以 Windows 為基礎的驗證,並可透過下列通訊協定提供 Web 服務的認證:

  • NTLM。
  • Kerberos。
  • 基本 (僅限透過 HTTPs)。
  • 安裝在 Windows 上的其他安全性支援提供者(SSP),可提供額外的查詢容量。 請參閱 SSP 介面 SDK 檔,以瞭解其他 SSP 的潛在新增。

在 RSS 或 Atom 中傳送查詢並傳回搜尋結果

OpenSearch 提供者負責將 XML 元素值對應至 Windows 應用程式可以使用的 Windows Shell 系統屬性。 但是,您不限於標準 RSS 或 Atom 元素的預設對應,而且可以在 Windows 命名空間中包含每個屬性的自訂 XML 元素。 例如,您可以在 項目內新增自己的自定義 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 Shell 屬性

在 RSS 摘要中的項目內,您可以選擇包含其他會自動對應至 Windows Shell 系統屬性的 XML 元素。 若要這樣做,請包含以 Windows Shell 屬性命名的專案,並在前面加上 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 Shell 屬性名稱,而且必須包含確切的統一資源標識碼 (URI),如下列範例所示:

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

關於 Windows Shell 系統屬性

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 檔案總管 UI 中搜尋可讓使用者在 RSS 專案指向遠端儲存的檔案時,將結果視為檔案。 用戶可以將項目拖放到桌面,而 Windows 檔案總管 UI 會顯示正確的圖示,並提供適當的快捷選單。 如果 RSS 專案未指向遠端儲存的檔案,則會將檔案視為連結,而且使用者可以對其執行動作,例如建立快捷方式或在瀏覽器中開啟它。

下列流程圖顯示 Windows 如何判斷專案的文件類型。

流程圖,顯示從專案到決策的路徑,將其視為網頁連結類型專案或檔類型

OpenSearch 提供者會執行下列步驟,將專案對應至檔類型:

  • 識別專案是否應該視為檔案或網頁連結。
  • 識別要使用的正確副檔名。

例如,如果專案具有使用文件系統路徑的連結 URL(例如 file:///\\server\share\etc\item.ext),OpenSearch 提供者會將連結視為檔案,並依路徑中使用的擴展名來判斷類型(在此範例中為 .ext)。

如果項目使用標準的 RSS 封裝或 MediaRSS media:content 元素,OpenSearch 提供者會假設該項目是檔案,並辨識檔案名稱副檔名,如下所示:

  • 如果 System.FileExtension Windows Shell 屬性已對應至該項目,提供者就會使用該副檔名。
  • 如果 System.FileExtension Windows Shell 屬性尚未對應,提供者將使用封裝或內容元素中指定的 Type 屬性。 這個項目應該包含 MIMEType 字串,例如 "image/jpeg"。 如果 MIMEType 與用戶端計算機上註冊的擴展名相關聯,該專案就會被視為該類型的檔案。 如果 MIMEType 未與用戶端計算機上註冊的擴展名相關聯,該專案會被視為網頁連結類型。 OpenSearch 提供者不會嘗試剖析 URL 屬性來尋找擴展名。
  • 如果 MIMEType 與用戶端計算機上註冊的擴展名相關聯,提供者會判斷擴展名是否為已知的 Web 檔類型(.htm、.html、.asp、.aspx、.php、.swf、.stm)。 如果是,則檔類型會被視為網頁連結類型;否則,它會被視為文件類型。 例如,如果 MIMEType "text/html" 與 .htm 擴展名相關聯,該專案會被視為網頁連結,而不是 .htm 檔類型。

避免啟用資料存放區的潛在障礙

某些數據存放區不提供 OpenSearch相容的 Web 服務,但仍可連線到 Windows 同盟搜尋。 這類資料存放區包括:

  • 具有 Windows 7 同盟搜尋中不支援之驗證方法的遠端索引。

    範例包括表單型驗證和其他自訂驗證方法。

  • 如果高價值公用市集有公用 Web API,任何人都可以撰寫另一個與 OpenSearch 相容的 Web服務,並在幕後呼叫這些 API。

    範例包括國會圖書館和醫學研究資料庫。

  • 專屬的企業數據存放區或索引,以及舊版內容管理存放區,因此可能無法實作前端。

不過,有一種替代方案可以避免啟用數據存放區的障礙。 以下是其中一些替代方案:

當您無法修改現有數據源的 Web 服務或 Web 服務提供自定義 API 時,若要撰寫仲介 Web 服務:

  1. 撰寫可接受 Windows 7 查詢的中間人 Web 服務。
  2. 聯機到您的數據源,並擷取查詢結果。
  3. 以 RSS 或 Atom 格式重新格式化結果。
  4. 將結果傳回 Windows 7 用戶端。
  5. 請注意,針對企業數據服務和許多因特網數據服務,您可能需要代表Web服務傳遞用戶認證,以根據使用者的許可權執行結果修剪。

當您無法啟用公用資料存放區時,若要使用現有的搜尋引擎:

  1. 使用已支援搭配 RSS OpenSearch 的公用搜尋引擎。 您可以透過提供一個包含 URL 範本的 .osdx 檔案給使用者,將搜尋結果限制為您的特定網域。

  2. 請參閱下列 OpenSearch 描述的範例,以針對 live.com 使用查詢來搜尋 Windows 的說明內容。

    <?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 檔案,此檔案會使用 URL 範本中的 KeyWord 語法,將 SharePoint 索引的結果限制為僅限來自您伺服器的檔案。

當伺服器端解決方案無法運作時,撰寫用戶端資料存放區:

  1. 撰寫位於 Windows OpenSearch 提供者與外部數據源之間的用戶端 OpenSearch 數據源。
  2. 使用 Windows SDK 中的 IOpenSearchSource 介面 API 來建立適當設定的 .searchconnector-ms 檔案,Windows Explorer 可以使用查詢參數呼叫您的實作。 您的實作接著可以傳回以 RSS 或 Atom 格式格式化的結果。 這麼做可讓您的實作提供自定義驗證 UI,並使用其專屬 API 連線到數據源。

注意

開啟 .osdx 檔案會在 %userprofile%/search 目錄中建立 .searchconnector-ms 檔案 (search connector),並將連結放在 %userprofile%/links 目錄中。

 

其他資源

如需在 Windows 7 和更新版本中使用 OpenSearch 技術實作遠端數據存放區搜尋同盟的詳細資訊,請參閱 Windows 同盟搜尋的「其他資源」。

Windows 中的聯邦搜尋

開始使用 Windows 的聯邦搜尋

在 Windows 同盟搜尋中連線您的 Web 服務

在 Windows 同盟搜尋 中建立 OpenSearch 描述檔案

Windows 同盟搜尋 中的最佳做法

在 Windows 同盟搜尋 中部署搜尋連接器