[UCM] Adding UCM as a search source in Windows Explorer

最近お客様からこんなことを指摘されました。
「Windows 7ではWindowsエクスプローラからフェデレーション検索ができるんだってね。」
このフェデレーション検索とは、外部ソース(Google、Flickr、YouTubeなど)をエクスプローラから検索できる、というものです。

フェデレーション検索について

エクスプローラから検索する機能を提供するDesktop Integration Suiteを持っていますが、この検索機構を調査してみようと思いました。しかも開発用ソフトウェアは不要っぽいのです。
基本的に、フェデレーション検索はOpenSearchプロトコル (v1.1)を通じてWindowsエクスプローラと連携しています。検索コネクタディスクリプタファイルを実行し、検索プロバイダをインストールします。このファイルはOpenSearch記述ファイルで、.osdxという拡張子を持ち、連携する検索プロバイダと、問い合わせのためのURLが記述されています。検索の結果はRSSもしくはATOMフィードで戻れば、設定はすべて完了です。

OpenSearch記述ファイルについて

では、まずRSSフィードコンポーネントをOTNのUCMサンプルページ(http://www.oracle.com/technetwork/middleware/content-management/index-092832.html)からダウンロードし、インストールします。UCM 11gなら、RSSフィードが問題なく動作したことを確認済みです。
次に、特定の検索語でQuick Searchを実行できるよう、検索結果をRSSリンクのURLをコピーしておきます。


次のようなURLになるかと思います。
http://server:16200/cs/idcplg?IdcService=GET_SCS_FEED&feedName=search_results&QueryText=%28+%3cqsch%3eoracle%3c%2fqsch
%3e+%29&SortField=dInDate&SortOrder=Desc&ResultCount=20&SearchQueryFormat=
Universal&SearchProviders=server&
それでは、新しいテキストファイルを作成して、以下の内容を記述しましょう。
<?xml version="1.0" encoding="UTF-8"?><OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" xmlns:ms-ose="http://schemas.microsoft.com/opensearchext/2009/">
<ShortName></ShortName>
<Description></Description>
<Url type="application/rss+xml" template=""/>
<Url type="text/html" template=""/>
</OpenSearchDescription> 
ShortNameとDescriptionには各自記述してください。ShortNameはエクスプローラに表示される検索プロバイダの名称です。
はじめに現れるURL要素のテンプレート属性には先ほどコピーしたURLを指定します。アンパサンド記号はXML仕様にあわせて変更する必要があります。最後に検索語を '{searchTerms}' と置き換えます。

2個目のURL要素でも同様の作業をするのですが、コピーするURLはUCMの検索結果のURLです(以下は例)。
http://server:16200/cs/idcplg?IdcService=GET_SEARCH_RESULTS&SortField=dInDate&SortOrder=Desc&ResultCount=20&QueryText=%3Cqsch%3Eoracle%3C%2Fqsch%3E&listTemplateId=
&ftx=1&SearchQueryFormat=Universal&TargetedQuickSearchSelection=
&MiniSearchText=oracle
もう一度、アンパサンド記号を変換し、検索語は'{searchTerms}' と置き換えましょう。完了したら、.osdxというファイル拡張子をつけて保存します。完成したファイルは以下のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" xmlns:ms-ose="http://schemas.microsoft.com/opensearchext/2009/">
<ShortName>Universal Content Management</ShortName>
<Description>OpenSearch for UCM via Windows 7 Search Federation.</Description>
<Url type="application/rss+xml" template="http://server:16200/cs/idcplg?IdcService=GET_SCS_FEED&amp;feedName=search_results&amp;QueryText=%28+%3Cqsch%3E{searchTerms}%3C%2fqsch%3E+%29&amp;SortField=dInDate&amp;SortOrder=Desc&amp;ResultCount=200&amp;SearchQueryFormat=Universal"/>
<Url type="text/html" template="http://server:16200/cs/idcplg?IdcService=GET_SEARCH_RESULTS&amp;SortField=dInDate&amp;SortOrder=Desc&amp;ResultCount=20&amp;QueryText=%3Cqsch%3E{searchTerms}%3C%2Fqsch%3E&amp;listTemplateId=&amp;ftx=1&amp;SearchQueryFormat=Universal&amp;TargetedQuickSearchSelection=&amp;MiniSearchText={searchTerms}"/>
</OpenSearchDescription> 
ファイル保存後、ダブルクリックしてプロバイダを作成します。検索コネクタをWindowsに追加しますか、と尋ねられます。追加ボタンを押すと、Userフォルダ中のお気に入りフォルダと同じレベルの検索フォルダにこのファイルが追加されます。


Windows Explorerの右上、検索アイコンをクリックして、検索したい言葉を入れてみてください。タイプするのにあわせて、検索を開始し、結果がエクスプローラに表示されます。

アイテムをダブルクリックすると、Web上で表示もしくはダウンロードしようとします。

UCMでやるように検索の保存もできます。ブラウザを開きいて検索結果ページを直接表示するSearch On Websiteへのリンクがあります。

RSSコンポーネントにちょっとひねりを加えると、もっと興味深い結果を得られます。Media RSS標準をサポートしているので、検索結果のドキュメントのサムネールを結果と一緒に渡すことができます。

Media RSS



サムネールを渡すようにするには、RSS Feedsコンポーネントに含まれる rss_resources.htm ファイルを編集する必要があります。std_rss_feed_begin リソースインクルード中に、'xmlns:media="http://search.yahoo.com/mrss/"'というネームスペースをRSS定義に追加します。
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:media="http://search.yahoo.com/mrss/">
次に、rss_channel_item_with_thumbインクルード中で、</images>の後に以下の要素を追加します。
</images>
<media:thumbnail url="<$if strIndexOf(thumbnailUrl, "@t") > 0 or strIndexOf(thumbnailUrl, "@g") > 0 or strIndexOf(thumbnailUrl, "@p") > 0$><$rssHttpHost$><$thumbnailUrl$><$elseif dGif$><$HttpWebRoot$>images/docgifs/<$dGif$><$endif$>" />
<description>
RSSコンポーネントをカスタマイズする方法は、これ以外にもたくさんありますので、エクスプローラでの利用に適した拡張が可能です。


原文はこちら。

0 件のコメント:

コメントを投稿