「Web AI」は、クロノス・クラウンの柳井政和が開発しているJavaScirptのライブラリです。
「Web AI」には、検索をメソッド・チェーンで効率化させる機能があります。この機能を使えば、検索結果を元にして、次の検索を行うといった処理を手軽に書くことができます。
「Web AI」の検索は、「Google AJAX API」を使っています。検索オブジェクトは、「Google AJAX Search API」のサーチャー・オブジェクトになります。また、受け取る結果は、同APIの結果オブジェクトになります。
また、検索結果からのキーワード抽出や、文章抽出の機能もあります。
それでは以下、「Web AI」Google Suggest利用のサンプルを掲載します。※ Google Suggest機能は、ver 1.1 で追加されました。
まずは、実例です。
検索キーワード:以下、ソースコードです。Google Suggestの生データ以外にも、取得したデータを加工したデータも受け取れます。引数「hd」「not」を利用すれば、手軽に検索語に続く文句や関連語を取り出すことができます。
// Googleからスクリプトをロード
google.load("jquery", "1.4.3");
// ロード中アニメ
var loadAnmArr // ロード中アニメ配列
= [".(^o^).", "(^o^)..", "^o^)..(", "o^)..(^", "^)..(^o", ")..(^o^", "..(^o^)"];
var loadAnmCnt = 0; // ロード中アニメ・カウンター
// Web AI
var $WA = crocro.webAi; // 短縮表記
var cWSrch = new $WA.WebSrch(); // Web検索
/**
* 【初期化処理】
*/
cWSrch.ready(function(){
prettyPrint(); // ソースの装飾(*説明装飾用)
cWSrch
.brand("gglBrnd") // Googleのブランド表示
.setEachCall(function(){
// ステップごとに呼び出される処理を追加
drwLoadAnm(true); // ロードアニメ描画
})
.start(); // 実行開始
});
/**
* @title 【テスト】
* @description
*
* テストを行う。
*/
function test() {
// 変数の初期化
var qStr = $.trim($("#q").val()); // 検索語
$("#q").val(qStr);
$(".srchKw").text(qStr);
// 検索のメソッド・チェーン処理
cWSrch
.reset() // 命令格納のリセット
.sgst({
// Google Suggest(単語を検索)
kw : qStr,
res : function(res) {
$("#res1Raw").html(res.raw.join(" / ")); // 生データ
$("#res1Wrd").html(res.wrd.join(" / ")); // 単語リスト
$("#res1Hd").html(res.hd.join(" / ")); // 検索語を先頭に含む
$("#res1Not").html(res.not.join(" / ")); // 検索語を含まない文字列
}
})
.sgst({
// Google Suggest(単語の末尾に半角スペースを付けて検索)
kw : qStr + " ",
res : function(res) {
$("#res2Raw").html(res.raw.join(" / ")); // 生データ
$("#res2Wrd").html(res.wrd.join(" / ")); // 単語リスト
$("#res2Hd").html(res.hd.join(" / ")); // 検索語を先頭に含む
$("#res2Not").html(res.not.join(" / ")); // 検索語を含まない文字列
}
})
.add(function() {
drwLoadAnm(false); // ロードアニメ描画
})
.start(); // 実行開始
}
/**
* @title 【ロードアニメ描画】
* @description
*
* ロード中のアニメを描画する。
*
* @param loading ロード中か否か
* @return なし
*/
function drwLoadAnm(loading) {
var dwStr = ""
if (loading) {
dwStr = "Now Loading... " + loadAnmArr[loadAnmCnt ++ % loadAnmArr.length];
}
$("#loading").text(dwStr);
}