3. 各ブログでサイト指定のGoogle検索

このキーワードで、「アメブロ」「はてなダイアリー」「livedoorブログ」などのブログサービスからキーワード検索を行い、それぞれの検索ヒット数を取得する処理を作成します。ライブラリパネルのタブをServiceタブに切り替え、Googleパッケージから「Google AJAX Search」アクションを、サブプロセスのアクションパネルにドロップします。

作成されたアクションウィジットの中の「query to search for」入力フィールドに対して、パラメータパネルのツリーにあるelementノードをドラッグ&ドロップします。${element}という値が入力欄に表示されますが、この後に以下のような形で文字列を追加し、検索の範囲をアメブロ内のブログだけに制限します。

${element} site:ameblo.jp

Refreshボタンを押すと検索が実行されます(画面14)。検索ヒット数は、search/cursor/estimatedResultCountノードに表示されているのがわかります。

【画面14】Google AJAX Searchアクションによる検索の結果

同様にあと2つGoogle AJAX Searchアクションをアクションパネルにドロップして追加します。それぞれ検索の入力フィールドには

${element} site:d.hatena.ne.jp
${element} site:blog.livedoor.jp

となるように設定します。

次に3つの検索ヒット数をまとめて結果として返すため、新たにオブジェクトを作成します。再びライブラリパネルのタブをOperationに切り替えて、Baseパッケージ内の「New Object」アクションをアクションパネルにドロップします。作成されたウィジット内にはツールバーに「Add New Input」というボタンがあるはずです。これによりオブジェクトにプロパティを追加することができます。

ボタンを押してプロパティを4つ追加します。Name欄にはプロパティの名前としてそれぞれ「keyword」「アメブロ」「はてなダイアリー」「livedoorブログ」と入力します。keywordプロパティに対応するValueとして、パラメータパネルのelementノードをドラッグドロップして結びつけます。「アメブロ」「はてなダイアリー」「livedoorブログ」にはそれぞれのGoogle AJAX Searchウィジットの出力ノード(cursor/estimatedResultCount)のノードをドラッグドロップしてバインドします(画面15)。

【画面15】オブジェクトのプロパティ設定の結果

このオブジェクトをサブプロセスの最終出力としてアウトプットパネルにドラッグ&ドロップします。最終出力の設定が終了したら、サブプロセスのタブをクローズして、元のルートプロセスの編集画面に戻ります。

繰り返しのプロセス定義が終わったので、実際にすべての配列データについてこの処理を繰り返し行ってみます。iterateアクションのRefreshボタンを押して、アクションを評価します。しばらく時間が経つと入力された配列のすべての要素に対して繰り返し処理を行った結果がツリー形式で表示されます。結果が配列として出力される場合はツリー上部の選択リストからグリッド表示を選ぶことで表形式でデータを一覧表示することも可能です(画面16)。

【画面16】繰り返し結果をグリッド表示した例


4. 棒グラフで表示

最後にこの結果データを棒グラフで表示してみましょう。

ライブラリパネルからRendererタブを選択し、Plotr Rendererパッケージ内の「Bar Chart」レンダラーアクションをアクションパネルにドロップします。

iterateアクションの出力結果をグリッドからツリー表示に戻し、ツリーのノードをBar Chartアクションウィジットの「input records」フィールドにドラッグ&ドロップします。「label field」フィールドは選択リストになっており、入力された配列の要素からグラフ表示のラベルとなるプロパティ名を選択します。label fieldの値として「keyword」を選択し、同様にvalue field #1に「アメブロ」、value field #2に「はてなダイアリー」、value field #3に「livedoorブログ」を選択して入力してください(画面17)。

【画面17】グラフ表示のプロパティを選択

Refreshボタンを押すと、以下のようなグラフ表示が得られます(画面18)。

【画面18】Bar Chartアクションの出力結果