- PR -

Google Web APIを用いたJavaプログラムについて

1
投稿者投稿内容
唐竹
会議室デビュー日: 2005/05/03
投稿数: 14
投稿日時: 2005-05-03 06:26
はじめて投稿させて頂きます。

現在,Google Web APIを用いたプログラムを作成中なのですが,
APIのバグかな? と思う部分がありまして詰まってしまっています。
対処法をご存じの方いらっしゃいましたらご教授下さい。
よろしくお願いいたします。

問題なのですが,

GoogleSearchオブジェクトに,
setKey(googleKey)
setQueryString("google")
setStartResult(0)
という条件を設定してdoSearch()を行った場合,
GoogleSearchResultオブジェクトは,
getEstimatedTotalResultsCount()の結果として,45100000を返します。

ですが,GoogleSearchオブジェクトに,
setKey(googleKey)
setQueryString("google")
setStartResult(1000)
という条件を設定してdoSearch()を行った場合,
GoogleSearchResultオブジェクトは,
getEstimatedTotalResultsCount()の結果として,0を返します。
このとき,GoogleSearchResultElement[]の中身はありません。

手探りで試してみたところ,
setStartResult(990)までで正常なEstimatedTotalResultsCountが出ますが,
setStartResult(991)以降ではEstimatedTotalResultsCountが0になってしまうようです。

また,
setStartResult(990)以前でも,maxResultを10に設定しているのに,
GoogleSearchResultElement[]の中身が5つしかない,3つしかないという場合が
発生しました。規則性はまだ発見できていません。

単に検索結果を全て知りたいだけなのですが,
991件目以降の結果は参照することもかなわないのでしょうか?
もし,javaに依存する問題であれば他の言語を使おうかと考えています。

よろしくお願いいたします。
karajan
ベテラン
会議室デビュー日: 2002/07/05
投稿数: 89
投稿日時: 2005-05-03 08:49
http://www.google.com/apis/reference.html#2_7
によると、<start> + <maxResults> は1000までという制限があります。

引用:

setStartResult(990)以前でも,maxResultを10に設定しているのに,
GoogleSearchResultElement[]の中身が5つしかない,3つしかないという場合が



この現象についてはよくわかりませんが、maxResultは規定で10を設定しているようですので、他の現象については説明がつきそうですね。
唐竹
会議室デビュー日: 2005/05/03
投稿数: 14
投稿日時: 2005-05-05 14:45
お返事遅くなりました。
karajan様,アドバイスありがとうございます。

Referenceがあることに気づいていませんでした。
resultElementの中身の数が勝手に変動する問題については,
何度か試して検証してみようと思います。
検索件数を,一回につき500件程度に無理矢理絞れるような
プログラムを考えてみたいと思います。

ありがとうございました!

[ メッセージ編集済み 編集者: 唐竹 編集日時 2005-05-05 14:46 ]
1

スキルアップ/キャリアアップ(JOB@IT)