ニュース
Yahoo!(企業)

Yahoo SearchMonkeyプライベートベータ利用開始

次の記事

マイクロソフト、ヤフーの売上横ばい利益激減で買収金額譲らず

2月に発表した「SearchMonkeyデベロッパー専用プラットフォーム」にYahooが今、人数限定でベータテスト利用者を招待中だ。これはサイトオーナーが自分なりにYahoo検索結果リストをカスタマイズできるプラットフォーム(検索結果のランキングの変更は許可していない。―それを許したら本当にラディカルだけどね)。

SearchMonkeyを使ってサイトのオーナーはYahooサーチ専用の“アプリケーション”を作ることができる。利用者は、Facebookアプリをインストールする時と同じ感覚でこのアプリもインストール可能だ。各アプリで、独自に指定する特定のURL(例えばWikipediaの解説ページやAmazonの製品ページなど)に関する検索結果を修正表示することができる。検索結果に含まれる基本エレメント(タイトルと解説)の変更と、画像・多階層リンク・キー/値の組み合わせの追加を行うことができる。

以下はSearchMonkeyをここで初めて紹介した時の記事で使ったYelp検索結果のサンプル。:

ご覧のように修正後の検索結果にはレビュー記事や写真へのリンクと、あとはレストランの評価・住所・電話番号なんかのクイックデータも出ている。このおまけ情報が出るお陰できっと検索者にとって検索結果はもっと役立つものになるはずだから、希望観測的にはクリックスルー率も上がるというわけ。

アプリを作成する

僕もSearchMonkeyのアプリ製作ツールをいじる機会があったけど、実際かなり使い方は簡単でストレート(PHP、XSLT、DataRSSに慣れてる人には)。

SearchMonkeyでは他の人たちが作ったアプリもインポートして修正できる。だけどやっぱ自分のサイト用に検索結果をカスタマイズするなら一から自分で始めたいと思うだろう。まず、名前・解説・カテゴリ・アイコン・アプリ種別を選ぶところから始めよう。

アプリタイプには大きく分けて2通りある:拡張表示タイプ(enhanced result)とインフォバー(infobar)タイプだ。 大体のサイトオーナーは拡張表示タイプのオプションを選ぶと思うけど、これはYelpのサンプル(上)みたいに沢山の情報をフルビューで表示できるというもの。 片やインフォバー(infobar)タイプでは各検索結果の下にインタラクティブなバーが表示され、そこに補足情報がみっちり詰まって出てくる。もっと情報を見たいユーザーは自分からバーを動かさないといけないが、明らかにHTMLとスタイリングという面ではより高い柔軟性が実感できるはずだ(僕のテストでは動かせなかった)。

こうした基本設定が終わると、アプリで対象とするURLストラクチャを指定することになる。このストラクチャはこんな感じ。→*.crunchbase.com/company/* で、アスタリスク(*の印)はURLパターンの最初と最後でワイルドカードとして使うことができる。このサンプル文字列は(このブログの企業データベースである)CrunchBaseの全企業ページの検索結果カスタマイズに使えるものだよ。

テストで利用することになる最大10件までのURLを指定すると、その辺りからちょっとややこしくなってくる。まず検索結果に表示したい情報のソースを選ばなくてはならない。それが終わると今度はその情報をどう表示したいかSearchMonkeyに指示する。ヤフーが定義する16の基本データフィールドには誰でもアクセスできる。基本データフィールドとして定義されているのは、検索結果のタイトルと説明、その他の活用度の低いもの(言語・ファイルサイズ・全検索結果の中の順位など)などだ。

しかし仮に検索結果としてリストに出ているページから情報を引き出し、ユーザーがクリックスルーするだけでその先で何が学べるか感触がつかめるようにしたいとすると、Yahooにその旨、情報をなんとか伝えなくてはならない。これは“カスタムデータサービス(custom data service)”というものを作るのが必須となる。これは階層的かつ再帰的なもので、下で説明することにする。

カスタムデータサービスの準備が完了しているなら、あとは簡単なPHPクラスに用意されている設定値を使って、SearchMonkeyにカスタムデータの表示方法を指示してやるだけ。4階層のデータリンク(利用しているドメインの制限による)および、4つのキー/値のペアを設定することができる。検索結果の表示形式をカスタマイズする際、ページ下部にある「Save & Refresh」で、プレビューを行うこともできる。この機能を使って、常に正しい操作を行っているか確認することができる(これはいつも大事なことだ)。

カスタムデータサービスの作成

ここまでが、アプリケーションを作成する基本的なステップの説明だ。ただその前に、カスタムデータサービスを設定しておく必要があると思う。これはセマンティックにデータを抽出したり、カスタマイズした検索結果の表示に必要なデータを取ってくるのに利用するもの。

データ抽出の方法については、以前のYahooからのアナウンスにも書いてあるし、これはこれからのセマンティックウェブの標準に則るものだ。HTML構造の中にどのようなデータがあるかを定義しておくことで、APIを使わなくてもウェブページから必要な情報だけをを引き出すことができるようになる。

ページの構造を定義するにはXSLTを使う。これはFireFoxの機能拡張にあるXPatherを使うと簡単にできる。XPatherがサイト内のデータを識別するコードを書くのを手伝ってくれる。XSLTの詳細については踏み込まないけれど、知識を付けることは絶対に必要。それから同じタイプのデータを表示するときに一貫性を持たせるために、サイト内のコードをいじる必要もあるかもしれない。

ウェブサービスで利用するカスタムデータサービスを作成するには、OpenSearchフォーマットのXMLや、XSLTの知識が不可欠になってくる。

検索結果のカスタマイズ、半分完成

で、作ってきたアプリケーションで何ができるようになっただろう。何が変わったか見てみて欲しい:


まあ、どう考えても「完成」ってわけじゃない。でもどんな風に検索結果をカスタマイズすることができるかは、わかってもらえたんじゃないかな。CrunchBaseのページから、大した設定することなしにFacebookのアドレスに関する情報を抜き出すことができた。

検索を進化させる次なる一歩

技術分野に詳しくない人は、眠くなってしまったかもしれない。だけど、SearchMonkeyを使った検索結果のカスタマイズってのは、ロケット工学ほどに難しいものじゃないことだけは確かだ。だから大小問わず、サイトを運営している人にはどんどん広がっていくと思ってる。

たぶん最後の質問。Yahooはこういうアプリケーションを、検索する人にどうやって普及させていくんだろう? Facebookがプラットフォームの提供を開始したときは、強力なバイラルチャネルが後押しした。でもYahooがユーザにアプリケーションをどのように提案するのかってのは、まだ見たことがない。もっと大きくて、もっと市場独占的なアプリケーションなら、勝手に広がっていくんだと思う。だけどその他大勢は、たぶん個別に対応していく必要があるんだろうね。

この分野でいろんなアプリケーションが出てくれば、SearchMonkeyは個々のニーズに対応して、社会性ももっていて、多くの人に望まれる検索システムに繋がる道程になるだろうね。サードパーティーの開発者がさまざまな開発を行って、ユーザーがその中から良い物を選択していくようになれば、そこに生じる市場が、検索技術をより進化させる直接的なきっかけになっていくと思う。

[原文へ]

(翻訳:satomi & Maeda, H.)