5 Namazu みたいに Google AJAX Search API


PIC
____________________________________________________________________

分のブサイトにわざわざ Namazu 導入しなくても Google エンジン使ておサイト する方法します

5.1 Google エンジンカスタマイズして使うには

利用するパタがいくつかありますそれぞれのパタについて方法します

どれをんでもHTML イルもしくは PHP などブサくことで動作しますJavaScript ラウザさえあればどこでも動きます

  1. JavaScript あり
    1. 分で JavaScript
    2. 使
  2. JavaScript なし
5.1.1 JavaScript ありなし両方

Google AJAX Search API KEY しておきます

5.1.2 JavaScript あり

HTML イルGoogle AJAX Search API JavaScript ライブラリします

<script src="http://www.google.com/uds/api?file=uds.js&v=1.0" type="text/javascript"></script>
//名前
    google.load("search", "1.0");

//をするオブジクトする
    var searchControl = new google.search.SearchControl();

//
//オブジクトメソコントロ必要であればオプシ
    var options = new GsearcherOptions(); //表示オプシ
    options.setExpandMode(GSearchControl.EXPAND_MODE_OPEN);//果一いたする
    options.setExpandMode(GSearchControl.EXPAND_MODE_CLOSED);//じたのままをする
    options.setExpandMode(GSearchControl.EXPAND_MODE_PARTIAL);//プン張モ
    options.setRoot(document.getElementById("resultsComeHere"));//する場所表示するオプシ

//サイト
    var siteSearch = new GwebSearch();
    siteSearch.setUserDefinedLabel("Aya’s Site");
    siteSearch.setSiteRestriction("popowa.com");//直接 URL
    siteSearch.setSiteRestriction("000455696194071821846:reviews");//
  スタムエンジンKey \footnote{カスタムエンジンとは
  をある程度デザインけてることがるものです\\
\url{http://www.google.com/coop/cse/}}

//了、 する
    searchControl.addSearcher(siteSearch, options);//オプシがあれば
    searchControl.addSearcher(new GwebSearch());//オプシがなければ
//
    var result = document.getElementById("googleResults");
    var drawOptions = new GdrawOptions();//オプシdrawOptions  オブジクト
    drawOptions.setDrawMode(GSearchControl.DRAW_MODE_LINEAR);//1)
    drawOptions.setDrawMode(GSearchControl.DRAW_MODE_TABBED);//2) タブ
    drawOptions.setSearchFormRoot(document.getElementById("searchForm"));//離す
    searchControl.draw(result, drawOptions);
//(prototype)
    searchControl.setOnKeepCallback(this, MyKeepHandler);//この (this) MyKeepHandler たせておく
    searchControl.setSearchCompleteCallback(this, OnSearchComplete); //行後
    searchControl.setSearchStartingCallback(this, OnSearchStarting); //了前
//する
    searchControl.execute(keyword);

そしてbody したい場所div れます

 <div id="searchForm" class="searchForm">form</div>
 <div id="googleResults" class="googleResults">googleResults</div>
5.1.3 JavaScript なし
http://ajax.googleapis.com/ajax/services/search/web してリクエストすると JSON レスポンス られます





パラメ



q? したい索式 urlencode() しないとうまく動かない



v=1.0 プロトコル 現在1.0 しかない



key? Google AJAX Search API Key した FQDN=使ている FQDN でなくてもよい



start? インデクス ドメインをすると 160 からてくれなくなる



cx? カスタムエンジンID ドメインからのみする



lr? 言語ドキメントとする




レスポンス

{"responseData": {
 "results": [
  {
   "GsearchResultClass": "GwebSearch",
   "unescapedUrl": "http://en.wikipedia.org/wiki/Paris_Hilton",
   "url": "http://en.wikipedia.org/wiki/Paris_Hilton",
   "visibleUrl": "en.wikipedia.org",
   "cacheUrl": "http://www.google.com/search?q\u003dcache:TwrPfhd22hYJ:en.wikipedia.org",
   "title": "\u003cb\u003eParis Hilton\u003c/b\u003e - Wikipedia, the free encyclopedia",
   "titleNoFormatting": "Paris Hilton - Wikipedia, the free encyclopedia",
   "content": "\[1\] In 2006, she released her debut album..."
  },
  ...
 ],
 "cursor": {
  "pages": [
   { "start": "0", "label": 1 },
   { "start": "4", "label": 2 },
   { "start": "8", "label": 3 },
   { "start": "12","label": 4 }
  ],
  "estimatedResultCount": "59600000",
  "currentPageIndex": 0,
  "moreResultsUrl": "http://www.google.com/search?oe\u003dutf8\u0026ie\u003dutf8..."
 }
}
, "responseDetails": null, "responseStatus": 200}

レスポンスプログラムする

<?php
function search($keyword, $page, $key){
$uri = ’http://ajax.googleapis.com/ajax/services/search/web’;
$uri .= ’?q=’ . urlencode($keyword);
$uri .= ’&key=’.$key;
$uri .= ’&v=1.0&rsz=large&hl=ja&start=’ . $page;
return json_decode(file_get_contents($uri));
}
$keyword = "エリア Debian ";
$key = ’ アプリケ’;
$data = search($keyword, 1, $key);
var_dump($data);
?>
5.1.4

Google AJAX Search API のかえしてくるにはがあります

JavaScript あり: setSiteRestriction ドメインしてをしようとしたするたびに ります

JavaScript なし: ?q=DMC\%20site:http://www.debian.or.jp/とするとドメインるがstart? たびに同じようにわります

5.1.5 まとめ

Namazu みたいに分けされたみはませんでした (2009/1 )

Google AJAX Search API わるについてはestimatedResultCount というくらいなのでestimate なのでし *3ちなみに Yahoo Web でも同じような発生しますYahoo!リクエストがあるしているのでいます予め てあります*4

48 エリア Debian 2009 1
____________________________________________________________________________________________