在 Windows 同盟搜尋中啟用您的資料存放區
說明如何讓 OpenSearch Web 服務存取您的資料存放區,以及如何避免潛在的障礙。
本主題的組織方式如下:
- 搜尋要求接受的條件
- 在 RSS 或 Atom 中傳送查詢和傳回搜尋結果
- 自動對應至 Windows Shell 屬性
- 瞭解如何將專案Windows 地圖至檔案類型
- 避免啟用資料存放區的潛在障礙
- 其他資源
- 相關主題
搜尋要求接受的條件
您在 Web 服務器上建立的 OpenSearch Web 服務 必須 滿足下列兩個需求:
能夠接受
GET URL
來自用戶端的查詢。允許將搜尋字詞內嵌在 URL 中。
下列範例示範如何在 URL 中內嵌搜尋字詞。
https://example.com/search.aspx?query=terms¶m=mysearchword
注意
同盟搜尋不支援將要求傳送 POST
至 Web 服務。
For more information about constructing a URL, see "URL Template Parameters" in Creating an OpenSearch Description File in Windows Federated Search.
支援的查詢語法
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>
For more detailed information about property mapping, see the "Extended Elements in WIndows Federated Search" and "Custom Property Mappings" sections in Creating an OpenSearch Description File in Windows Federated Search.
自動對應至 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")
來輸出正確的格式。
For more detailed information about property mapping, see "Extended Elements in Windows Federated Search" in Creating an OpenSearch Description File in Windows Federated Search.
瞭解如何將專案Windows 地圖至檔案類型
在 Windows 檔案總管 UI 中搜尋可讓使用者在 RSS 專案指向遠端儲存的檔案時,將結果視為檔案。 使用者可以將專案拖放到桌面,而 Windows 檔案總管 UI 會顯示正確的圖示,並提供適當的快捷方式功能表。 如果 RSS 專案未指向遠端儲存的檔案,則會將檔案視為連結,而且使用者可以對其執行動作,例如建立快捷方式或在瀏覽器中開啟它。
下列流程圖顯示 Windows 如何判斷專案的檔案類型。
OpenSearch提供者會執行下列步驟,將專案對應至檔案類型:
- 識別專案是否應視為檔案或 Web 連結。
- 識別要使用的正確副檔名。
例如,如果專案具有使用檔案系統路徑的連結 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、.asp、.php、.asp、.stm) 。 如果是,則檔案類型會視為 Web 連結類型;否則,它會視為檔案類型。 例如,如果MIMEType "text/html"
與.htm副檔名相關聯,該專案會被視為網頁連結,而不是.htm檔案類型。
避免啟用資料存放區的潛在障礙
某些資料存放區不提供 OpenSearch相容的 Web 服務,但仍可連線到 Windows 同盟搜尋。 這類資料存放區包括:
具有 Windows 7 同盟搜尋中不支援之驗證方法的遠端索引。
範例包括表單型驗證和其他自訂驗證方法。
如果高價值公用存放區具有公用 Web API,任何人都可以撰寫另一個 與 OpenSearch相容的 Web 服務,並在幕後呼叫這些 API。
範例包括美國文件庫和醫療研究資料庫。
專屬的企業資料存放區或索引,以及舊版內容管理存放區,因此可能無法實作前端。
不過,有一個替代方案可以避免啟用資料存放區的障礙。 以下是其中一些替代方案:
當您無法修改現有資料來源的 Web 服務,或 Web 服務提供自訂 API 時,若要撰寫中間人 Web 服務:
- 撰寫可接受 Windows 7 查詢的中間人 Web 服務。
- 連接到您的資料來源,並擷取查詢結果。
- 以 RSS 或 Atom 格式重新格式化結果。
- 將結果傳回至 Windows 7 用戶端。
- 請注意,對於企業資料服務和許多網際網路資料服務,您可能需要代表 Web 服務傳遞使用者認證,以根據使用者的許可權執行結果修剪。
當您無法啟用公用資料存放區時,若要使用現有的搜尋引擎:
使用已支援 OpenSearch 與 RSS 的公用搜尋引擎。 您可以藉由為使用者提供 .osdx 檔案,該檔案具有 URL 範本,可將結果限制為僅限您特定網域的結果。
請參閱下列 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?=&qu={searchTerms}"/> <Url type="application/rss+xml" template="https://api.search.live.com/rss.aspx?source=web&query={searchTerms} site:windowshelp.microsoft.com&web.count=50"/> </OpenSearchDescription>
當您無法啟用專屬的企業資料存放區或索引時,若要使用支援 OpenSearch 的現有索引伺服器:
- 選取支援 OpenSearch 的現有索引伺服器來編制內容索引,例如 SharePoint 搜尋伺服器。
- 建立 .osdx 檔案,以使用 URL 範本中的 KeyWord 語法,將 SharePoint 索引的結果限制為僅從您的伺服器取得的結果。
如果僅限伺服器端的解決方案無法運作,若要寫入用戶端資料存放區:
- 撰寫位於 Windows OpenSearch 提供者與外部資料源之間的用戶端 OpenSearch 資料來源。
- 使用 Windows SDK 中的 IOpenSearchSource 介面 API 來建立適當設定的 .searchconnector-ms 檔案,Windows 檔案總管可以使用查詢參數呼叫您的實作。 您的實作接著可以傳回以 RSS 或 Atom 格式格式化的結果。 這麼做可讓您的實作提供自訂驗證 UI,並使用其專屬 API 連線至資料來源。
注意
開啟 .osdx 檔案會建立 .searchconnector-ms 檔案, (搜尋連接器) %userprofile%/search 目錄中,並將連結放在 %userprofile%/links 目錄中。
其他資源
如需在 Windows 7 和更新版本中使用 OpenSearch 技術對遠端資料存放區實作搜尋同盟的其他資訊,請參閱 Windows 中的同盟搜尋中的。
相關主題