使用OpenSearch的Windows 联合搜索

分享于 

14分钟阅读

Web开发

  繁體 雙語

介绍

Windows 引入了支持对远程数据存储( 使用 技术支持用户访问和与 Windows 浏览器中的远程数据交互的支持。

本文描述了如何构建基于 Windows 联邦搜索的基于web的数据源。 遵循这里描述的最佳实践,你可以使用 Windows Explorer 启用远程数据源的丰富集成,而不需要编写或者部署 Windows 客户端代码。

搜索引擎自动编号

自动发现是一种自动查找与特定网页关联的机器处理资源的方法。 发现可以自动化,因为资源是以良好定义的方式链接到的。

最初我写了这篇文章,所有prominant浏览器( IE8,Chrome 和 Firefox ) 公开支持这些端点的搜索引擎自动发现。 然而,既然只有 Firefox 仍然容易提供add提供程序,那么就必须通过 Chrome 进行设置/管理器搜索,而IE9完全放弃了。

以下是一些关于为搜索引擎自动Autodiscovery设置特定浏览器的精彩文章:

为了获得OpenSearch的最佳体验,选择 Firefox 因为它为你提供了将OpenSearch引擎添加到浏览器中最容易。

已经部署示例:

http://www.jeff00seattle.com/projects/WindowsFederatedSearch4PHP/

什么是 Windows 联合搜索?

Windows 联邦搜索允许用户在 Windows Explorer 中搜索远程数据源。 远程数据源可以通过一个简单的web前端来搜索它们的搜索功能。

通过将数据源与 Windows Explorer 集成起来的好处是,用户可以使用已经熟悉的Windows Explorer 用户界面来获取所有信息。 你的用户将能够从远程数据源看到文件,正如它们的本地文件和上下文菜单一样。

在Microsoft网站上找到完整的解释: 在 Windows 中,采用联邦搜索。

Windows 联邦搜索示例设置

基于web服务的web站点示例演示如何通过OpenSearch端点公开它的搜索,并可以选择在 Windows Explorer 中提供搜索过滤器以搜索站点的搜索结果。 为了简单起见,在这个示例中,PHP网站上的to终结点只使用Yahoo股票报价服务获得结果。 在实际场景中,搜索端点可能会调用网站搜索功能的内部。

获取 Windows 联邦搜索Web服务端点演示的五个简单步骤可以由 Windows 7联邦浏览器搜索功能访问。

  • 安装 Windows 联邦搜索演示端点文件夹 WindowsFederatedSearch4PHP 到web服务。
  • 如果数据源要访问防火墙之外的信息,则可能需要在 WindowsFederatedSearch_UserConfig.class.php 修改代理设置。
  • 在浏览器中从 Windows 联邦搜索端点测试RSS提要。
  • 在 Windows 联邦搜索说明文档中修改URL路径 WindowsFederatedSearch4PHP.osdx
  • 在 client WindowsFederatedSearch4PHP.osdx Windows 浏览器中,部署OSD文档以为代价,创建一个收费的搜索连接器

357 x"alt="337549/imgwindowsfederatedsearchdemosetup。png"src="https://www.codeproject.com/KB/PHP/337549/imgWindowsFederatedSearchDemoSetup.png">

步骤 1 - 创建 Windows 联邦搜索Web服务端点- 安装演示文件夹

将文件夹 WindowsFederatedSearch4PHP 放置到你的网站上。

By default get WindowsFederatedSearch4PHP root operate在firewall目录地址accessible中可以通过浏览器访问 Windows 联邦搜索端点accessible以获取这里演示的所有必需配置:

http://localhost/WindowsFederatedSearch4PHP/

步骤 2 - 修改窗口联邦搜索Web服务端点的cURL代理设置

WindowsFederatedSearch_DataSource.class.php 是这里示例窗口联合搜索Web服务端点使用的示例数据源。 数据源estabilishes与外部股票报价提供商雅虎股票的连接使用了PHP的cURL。

如果在estabilishing中需要代理,通过防火墙连接因特网,那么可能需要在PHP文件中修改代理信息,以为单位。

如果不需要代理访问站点,则可以跳过这里步骤。

PHP - WindowsFederatedSearch_UserConfig.class. PHP

修改WindowsFederatedSearch_DataSource端点的搜索 NAME 和服务器设置


class UserConfigConstants


{


 const OPEN_SEARCH_SHORT_NAME = 'Windows Federated Search 4 PHP';


 const OPEN_SEARCH_DESCRIPTION = 'Windows Federated Search for PHP Developers Demo';



 const SERVER_NAME = 'localhost';


 const SERVER_PORT = 80;



 const SERVER_ENDPOINT_PROXY = 'itgproxy'; /* CURLOPT_PROXY */


 const SERVER_ENDPOINT_PROXY_PORT = '80'; /* CURLOPT_PROXYPORT */


}



步骤 3 - 使用浏览器测试 Windows 联邦搜索Web服务端点

如上所述,Windows 联邦搜索需要来自OpenSearch服务的RSS-2 提要。 验证OpenSearch服务是否可行的最简单方法是从浏览器对它的端点执行搜索请求。

演示提供的最简单的解决方案是将 IE 8 浏览器打开到windowsfederatedsearch4php路径的URL的root。

http://hostname:port/.../WindowsFederatedSearch4PHP/index.php

这将提供给 browser浏览器a 描述( OSD ) 文档,并在浏览器右上角的搜索框中可见。

例如如果在 localhost: 80上安装了,那么以下链接应该在获取OpenSearch描述文档时直接向 IE 8浏览器中添加:

http://localhost/WindowsFederatedSearch4PHP/index.php

342 x"alt="337549/imgie8addingwinfedsearchendpoint。png"src="https://www.codeproject.com/KB/PHP/337549/imgIE8AddingWinFedSearchEndpoint.png">

请将以下股票符号输入这里搜索框中,并选择 MSFT everything everything正确设置浏览器应该列出当前股票报价。

278 x"alt="337549/imgwindowsfederatedsearchhtmlinbrowser。png"src="https://www.codeproject.com/KB/PHP/337549/imgWindowsFederatedSearchHtmlInBrowser.PNG">

目前的情况是,对的选择是对OpenSearch端点URL的引用,浏览器根据用户术语的搜索生成查询。 对于本演示,以下网址路径执行这些股票报价的搜索请求:

默认的OpenSearch描述将使用format=html和,如前面的图片所示:

http://hostname:port/.../WindowsFederatedSearch4PHP/search.php?query=MSFT+SY+BA& format=html& src=IE-SearchBox &start=1&cnt=10

对于 Windows 成员搜索,OpenSearch结果需要为 format=rss:

http://hostname:port/.../WindowsFederatedSearch4PHP/search.php?query=MSFT+SY+BA& format=rss

例如如果在 localhost: 上安装了 WindowsFederatedSearch4PHP,那么以下链接应该可以:

http://localhost/WindowsFederatedSearch4PHP/search.php?query=MSFT+SY+BA&format=rss

如果RSS提要可以操作,则应在浏览器中显示以下提要:

464 x"alt="337549/imgwindowsfederatedsearchrssinbrowser。png"src="https://www.codeproject.com/KB/PHP/337549/imgWindowsFederatedSearchRssInBrowser.png">

IE - 打开提要读取

如果你使用的是 IE ( IE ) 并且看到以下原始的RSS源,那么就需要在这里浏览器中打开该源。

414 x"alt="337549/imgwindowsfederatedsearchrawrssinbrowser。png"src="https://www.codeproject.com/KB/PHP/337549/imgWindowsFederatedSearchRawRssInBrowser.png">

在浏览器栏上的IE 菜单中,选择工具> 选项,然后双击内容。 在 Feeds和网页切片部分的内容中,选择Settings设置。

383 x"alt="337549/imgie8internetoptionscontenttab。png"src="https://www.codeproject.com/KB/PHP/337549/imgIE8InternetOptionsContentTab.png">

Feed和网页切片设置高级节的面板中,选中Feed阅读视图。 然后打开浏览器。它应该呈现一个样式化的RSS视图,。

375 x"alt="337549/imgie8feedwebsettings。png"src="https://www.codeproject.com/KB/PHP/337549/imgIE8FeedWebSettings.png">

步骤 4 - 修改OpenSearch描述文档- WindowsFederatedSearch4PHP.osdx

这个步骤设置 demo Description文档 ,它用于在收费的Windows 浏览器中为一个收费的搜索连接器创建一个收费的Search Search。

如果 WindowsFederatedSearch4PHP的设置位置为 URL http://localhost/WindowsFederatedSearch4PHP/,则可以跳过这里步骤。

需要进行3 次修改,所有修改都应该具有相同的路径值。 默认情况下,下列三个值都有一个值 http://localhost/WindowsFederatedSearch4PHP/:

  • URL type="应用程序/rss+xml"
  • URL type="文本/html"
  • 图像
XML - WindowsFederatedSearch4PHP.osdx

修改OpenSearch端点的路径


<?xml version="1.0" encoding="UTF-8"?>


<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" >


 <ShortName>WindowsFederatedSearch4PHP</ShortName>


 <Description>Windows Federated Search For PHP Developers</Description> 


 <!-- BEGIN: templates for Search Provider Endpoints and Image. -->


 <!-- TODO: Replace http://localhost/WindowsFederatedSearch4PHP/with Search Providers URL. -->


 <Url type="application/rss+xml" template="http://localhost/WindowsFederatedSearch4PHP/search.php?query={searchTerms}&amp;format=rss&amp;src=ms-ose&amp;start={startIndex}&amp;cnt={count}"/>


 <Url type="text/html" template="http://localhost/WindowsFederatedSearch4PHP/search.php?query={searchTerms}"/>


 <Image height="16" width="16" type="image/x-icon">http://localhost/WindowsFederatedSearch4PHP/favicon.ico</Image>


 <!-- END: templates for Search Provider Endpoints and Image. -->


</OpenSearchDescription>



步骤 5 - 安装 Windows 联邦搜索描述文档

如果你想使用 Windows 7客户端,可以双击你的Windows 联邦搜索描述( OSD ) 文档( WindowsFederatedSearch4PHP.osdx ),该文档将执行。 这将向 Windows 联邦搜索Web服务端点添加一个新的连接,这一点在客户机浏览的Windows。

536 x"alt="337549/imgcreatesearchconnector。png"src="https://www.codeproject.com/KB/PHP/337549/imgCreateSearchConnector.png">

步骤 6 - 在 Windows 7浏览器中执行搜索

下图显示了浏览器中基于股票符号搜索请求的Windows 联邦搜索结果。 搜索框包含以下符号:
MSFT BA

425 x"alt="337549/imgwindowsfederatedsearchinwin7exp。png"src="https://www.codeproject.com/KB/PHP/337549/imgWindowsFederatedSearchInWin7Exp.png">

有用提示

支持OpenSearch的IE 浏览器

OpenSearch在 IE IE-7浏览器中引入了 ,并在browser浏览器中进行了。 然而,令人沮丧的是,OpenSearch功能从的IE-9 中掉。

调试OpenSearch描述 OSDX

在 start Search browser selected selected selected selected selected selected selected selected,然后通过浏览器下载 description.php 来收集生成的OSDX

http://.../WindowsFederatedSearch4PHP/description.php

保存的description.php 文件将包含生成的OSDX。 接下来,验证OpenSearch描述是否完整,没有额外的字符。 例如这是由 description.php 生成的另一个OpenSearch站点使用的有效OSDX内容:

<OpenSearchDescription



  xmlns="http://a9.com/-/spec/opensearch/1.1/"



  xmlns:referrer="http://a9.com/-/opensearch/extensions/referrer/1.0/"



  xmlns:time="http://a9.com/-/opensearch/extensions/time/1.0/">


 <ShortName>Windows Federated Search 4 PHP</ShortName>


 <Description>Windows Federated Search for PHP Developers Demo</Description>


 <Url type="text/html" template="http://www.jeff00seattle.com/Projects/WindowsFederatedSearch4PHP/search.php?query={searchTerms}&amp;format=html&amp;src={referrer:source?}&amp;start={startIndex}&amp;cnt={count}" />


 <Image height="16" width="16">http://www.jeff00seattle.com/Projects/WindowsFederatedSearch4PHP/favicon.ico</Image>


 <Language>*</Language>


</OpenSearchDescription>



历史记录

  • 2012月 29 --更新 WindowsFederatedSearch4PHP_1_0_0_6.zip
  • 2012月 29 --添加新章节帮助提示

相关文章