0
1

[Custom Search API(V1)] JavaでGoogle検索する

Posted at

Custom Search API V1(Java)を使用して、
Googleが提供するカスタム検索エンジンで検索する方法
についてご紹介します。

APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[Custom Search API(V1)] JavaでGoogle検索する(準備編)
を参照ください。

No 目次
1 検索する
1 スコープ
2 実行
3 レスポンスの内容

1. 検索する

カスタム検索エンジンで検索します。

1.1. スコープ

このAPIを実行するには、以下のスコープを指定してください。

https://www.googleapis.com/auth/cse

1.2. 実行

コード中の「CXキー」は
2. Custom Search Engine(カスタム検索エンジン)の設定
で取得した値を設定してください。
この値は必須です。

public static void main(String[] args) throws Exception{
    CustomSearchAPI customSearch = getCustomSearchAPI();
    CustomSearchAPI.Cse cse = customSearch.cse();
    
    CustomSearchAPI.Cse.List list = cse.list();
    list.setQ("doran");
    list.setCx("CXキー");
    
    Search res = list.execute();
    System.out.println(res);
}

1.2.1. HTTPリクエスト

GET: https://customsearch.googleapis.com/customsearch/v1
が実行されます。

1.2.2. クエリパラメータ

CustomSearchAPI.Cse.Listのsetメソッドにより、クエリパラメータを追加できます。

メソッド 引数 説明
setCx String 【必須】カスタム検索エンジンのCXコード
setQ String 【必須】検索する文字列

[検索するキーワード][すべてのキーワードを含む]
setNum Integer 取得する結果の数
1〜10まで
setStart Long 検索するページ
setHq String 検索するキーワード。AND演算子で結合

[検索するキーワード][すべてのキーワードを含む]
setExactTerms String いずれかのキーワードを含む検索
複数ある場合は、OR(全角)で繋げる

[検索するキーワード][いずれかのキーワードを含む]
setExcludeTerms String 検索に含めないキーワード
[検索するキーワード][含めないキーワード]
setLowRange String 数値の範囲(下限)

[検索するキーワード][数値の範囲]
setHighRange String 数値の範囲(上限)

[検索するキーワード][数値の範囲]
setLr String 検索対象の言語

[検索結果の絞り込み][言語]
setCr String 指定した国で作成されたドキュメントを検索
検索対象の国の定期値を大文字にしてcountryと繋げる
例:jpならcountryJP

[検索結果の絞り込み][地域]
setDateRestrict String 日時の指定
"d+日数"、"w+週数"、"m+月数"、"y+年数"のいずれか
例:20日前 "d20"、3年前 "y3"

[検索結果の絞込み][最終更新]
setSiteSearch String 検索に含めるサイトか、除外するサイト
setSiteSearchFilter()で含めるor除外

[検索結果の絞込み][サイトまたはドメイン]
setSiteSearchFilter SiteSearchFilter(enum) setSiteSearch()で指定したサイトを含めるor除外

[検索結果の絞込み][サイトまたはドメイン]
setLinkSite String 検索範囲として特定のサイトまたはドメイン

[検索結果の絞り込み][サイトまたはドメイン]
setRights String ライセンスでフィルタ
"cc_publicdomain"、"cc_attribute"、"cc_sharealike"、"cc_noncommercial"、"cc_nonderived"

[検索結果の絞り込み][ライセンス]
setSafe Safe(enum) 検索する安全性レベル
setC2coff String 中国語(簡体字、繁体字)の検索
"0"(有効)、1"(無効)
setGl String エンドユーザーの国
setHl String ユーザーインターフェースの国
setFileType String 検索対象の拡張子
setFilter String 重複コンテンツのフィルタ
複数のドキュメントに同じ情報が含まれている場合、検索結果には最も関連性の高いドキュメントのみを含む
"0"(フィルタ無効)、"1"(フィルタ有効)
setOrTerms String ドキュメント内で検索するキーワード
setSort String 結果の並べ替え
setSearchType SearchType(enum) 画像で検索するか
指定なし:Webページ検索、指定あり:画像検索
setImgColorType ImgColorType(enum) 検索する画像の色の種別
setImgDominantColor ImgDominantColor(enum) 検索する画像のドミナントカラー
setImgSize ImgSize(enum) 検索する画像のサイズ
setImgType ImgType(enum) 検索する画像の型

SearchType

定義値(文字列) 内容
image 画像検索

ImgColorType

定義値(文字列) 内容
mono モノクロ画像のみ
gray グレースケールの画像のみ
color カラー画像のみ
trans 背景が透明な画像

ImgDominantColor

定義値(文字列) 内容
black 主に黒の画像のみ
blue 主に青い画像のみ
brown 主に茶色の画像のみ
gray 主にグレーの画像のみ
green 主に緑色の画像のみ
orange 主にオレンジ色の画像のみ
pink 主にピンクの画像のみ
purple 主に紫色の画像のみ
red 主に赤の画像のみ
teal 主に青緑の画像のみ
white 主に白い画像のみ
yellow 主に黄色の画像のみ

ImgSize

定義値(文字列) 内容
HUGE できる限り大きな画像のみ
ICON 非常に小さいアイコンサイズの画像のみ
LARGE 大きい画像のみ
MEDIUM 中程度の画像のみ
SMALL 小さい画像のみ
XLARGE 非常に大きな画像のみ
XXLARGE 極端に大きい画像のみ

ImgType

定義値(文字列) 内容
clipart クリップアートスタイルの画像のみ
face 顔の画像のみ
lineart 線画の画像のみ
stock ストック画像のみ
photo 写真画像のみ
animated アニメーション画像のみ

Safe

定義値(文字列) 内容
active セーフサーチをオン
off セーフサーチをオフ

SiteSearchFilter

定義値(文字列) 内容
e リストで指定したサイトから検索結果を除外
i 指定したサイトの検索結果のみ

ブール演算子

演算子 表記
AND . 日本語と英語
lr=lang_ja.lang_en
OR | 日本語か英語
lr=lang_ja|lang_en
NOT - 日本語または英語ではない
lr=(-lang_ja).(-lang_en)

1.3. レスポンスの内容

Search

メソッド 戻り値 説明
getKind String リソースの種類
固定文字列:"customsearch#search"
getUrl Search.Url APIのテンプレート定義
getQueries Search.Queries クエリメタデータのセット
getPromotions List<Promotions> プロモーションのセット
getContext Map<String,Object> 特定の検索エンジンに関連付けられたメタデータ
Key:クエリに使用された検索エンジンの名前、Value:検索の絞り込みに使用できるファセットオブジェクト
getSearchInformation Search.SearchInformation この検索に関するメタデータ
getSpelling Search.Spelling 修正したクエリ
getItems List<Result> 現在のカスタム検索結果

Search.Url

メソッド 戻り値 説明
getType String OpenSearch URLテンプレートのMIMEタイプ
getTemplate String OpenSearch テンプレート

Search.Queries

メソッド 戻り値 説明
getPreviousPage List<Search.Queries.PreviousPage> 結果の前のページを表すメタデータ
getRequest List<Search.Queries.Request> 現在のリクエストを表すメタデータ
getNextPage List<Search.Queries.NextPage 結果の次のページを表すメタデータ

Search.Queries.PreviousPage

メソッド 戻り値 説明
getTitle String クエリの説明
getTotalResults Long 検索結果の推定総数
getSearchTerms String ユーザーが入力した検索キーワード
getCount Integer このセットで返される検索結果の数
getStartIndex Integer 結果セット全体に対する現在の検索結果セットのインデックス
getStartPage Integer この結果セットのページ番号
getLanguage String 検索結果の言語
getInputEncoding String 検索リクエストでサポートされる文字エンコード
getOutputEncoding String 検索結果でサポートされている文字エンコード
getSafe Safe(enum) アダルト関連の検索結果を除外するために使用するセーフサーチレベル)
getCx String プログラム可能検索エンジンのコントロール パネルを使用して作成されたエンジンの識別子
getSort String 並び順
getFilter String Google 検索の検索結果の自動フィルタリングの有効・無効
0(無効)、1:(有効)
getGl String エンドユーザーの国
getCr String 検索対象の国
getDisableCnTwTranslation String 中国語(簡体字、繁体字)の検索機能
0(有効)、1(無効)
getHq String 検索したキーワード
getHl String ユーザーインターフェースの国
getSiteSearch String 検索に含めたサイトか、除外したサイト
getSiteSearchFilter SiteSearchFilter(enum) 指定したサイトを含めるor除外
getExactTerms String いずれかのキーワードを含む検索に指定した文字列
getExcludeTerms String 検索に含めないキーワードに指定した文字列
getLinkSite String 検索範囲として特定のサイトまたはドメインに指定した文字列
getOrTerms String ドキュメント内で検索するキーワードで指定した文字列
getRelatedSite String 関連するページの検索結果がすべて表示されるように指定したURL
getDateRestrict String 日時の指定
getLowRange String 数値の範囲(下限)
getHighRange String 数値の範囲(上限)
getFileType String 検索対象の拡張子
getRights String ライセンスに基づくフィルタ
getSearchType SearchType(enum) 画像で検索するか
なし:Webページ検索、あり:画像検索
getImgSize ImgSize(enum) 検索結果の画像サイズ
getImgType ImgType(enum) 検索した画像の型
getImgColorType ImgColorType(enum) 検索した画像の色の種別
getImgDominantColor ImgDominantColor(enum) 検索した画像のドミナントカラー

Search.Queries.Request

メソッド 戻り値 説明
getTitle String クエリの説明
getTotalResults Long 検索結果の推定総数
getSearchTerms String ユーザーが入力した検索キーワード
getCount Integer このセットで返される検索結果の数
getStartIndex Integer 結果セット全体に対する現在の検索結果セットのインデックス
getStartPage Integer この結果セットのページ番号
getLanguage String 検索結果の言語
getInputEncoding String 検索リクエストでサポートされる文字エンコード
getOutputEncoding String 検索結果でサポートされている文字エンコード
getSafe Safe(enum) アダルト関連の検索結果を除外するために使用するセーフサーチレベル
getCx String 検索エンジンのCXキー
getSort String 並び順
getFilter String Google検索の検索結果の自動フィルタリング
0(無効)、1(有効)
getGl String エンドユーザーの国
getCr String 作成された国
getDisableCnTwTranslation String 中国語(簡体字、繁体字)の検索機能
0(有効)、1(無効)
getHq String 検索したキーワード
getHl String ユーザーインターフェースの国
getSiteSearch String 検索に含めたサイトか、除外したサイト
getSiteSearchFilter SiteSearchFilter(enum) 指定したサイトを含めるor除外
getExactTerms String いずれかのキーワードを含む検索に指定した文字列
getExcludeTerms String 検索に含めないキーワードに指定した文字列
getLinkSite String 検索範囲として特定のサイトまたはドメインに指定した文字列
getOrTerms String ドキュメント内で検索するキーワードで指定した文字列
getRelatedSite String 関連するページの検索結果がすべて表示されるように指定したURL
getDateRestrict String 日時の指定
getLowRange String 数値の範囲(下限)
getHighRange String 数値の範囲(上限)
getFileType String 検索対象の拡張子
getRights String ライセンスに基づくフィルタ
getSearchType SearchType(enum) 画像で検索するか
なし:Webページ検索、あり:画像検索
getImgSize ImgSize(enum) 検索結果の画像サイズ
getImgType ImgType(enum) 検索した画像の型
getImgColorType ImgColorType(enum) 検索した画像の色の種別
getImgDominantColor ImgDominantColor(enum) 検索した画像のドミナントカラー

Search.Queries.NextPage

メソッド 戻り値 説明
getTitle String クエリの説明
getTotalResults Long 検索結果の推定総数
getSearchTerms String ユーザーが入力した検索キーワード
getCount Integer このセットで返される検索結果の数
getStartIndex Integer 結果セット全体に対する現在の検索結果セットのインデックス
getStartPage Integer この結果セットのページ番号
getLanguage String 検索結果の言語
getInputEncoding String 検索リクエストでサポートされる文字エンコード
getOutputEncoding String 検索結果でサポートされている文字エンコード
getSafe Safe(enum) アダルト関連の検索結果を除外するために使用するセーフサーチレベル
getCx String 検索エンジンのCXキー
getSort String 並び順
getFilter String Google検索の検索結果の自動フィルタリング
0(無効)、1(有効)
getGl String エンドユーザーの国
getCr String 作成された国
getDisableCnTwTranslation String 中国語(簡体字、繁体字)の検索機能
0(有効)、1(無効)
getHq String 検索したキーワード
getHl String ユーザーインターフェースの国
getSiteSearch String 検索に含めたサイトか、除外したサイト
getSiteSearchFilter SiteSearchFilter(enum) 指定したサイトを含めるor除外
getExactTerms String いずれかのキーワードを含む検索に指定した文字列
getExcludeTerms String 検索に含めないキーワードに指定した文字列
getLinkSite String 検索範囲として特定のサイトまたはドメインに指定した文字列
getOrTerms String ドキュメント内で検索するキーワードで指定した文字列
getRelatedSite String 関連するページの検索結果がすべて表示されるように指定したURL
getDateRestrict String 日時の指定
getLowRange String 数値の範囲(下限)
getHighRange String 数値の範囲(上限)
getFileType String 検索対象の拡張子
getRights String ライセンスに基づくフィルタ
getSearchType SearchType(enum) 画像で検索するか
なし:Webページ検索、あり:画像検索
getImgSize ImgSize(enum) 検索結果の画像サイズ
getImgType ImgType(enum) 検索した画像の型
getImgColorType ImgColorType(enum) 検索した画像の色の種別
getImgDominantColor ImgDominantColor(enum) 検索した画像のドミナントカラー

Promotions

メソッド 戻り値 説明
getTitle String プロモーションのタイトル
getJtmlTitle String プロモーションのタイトル(HTML形式)
getLink String プロモーションURL
getDisplayLink String この検索結果のURL
getBodyLines List<Promotion.BodyLines> このプロモーションのブロックオブジェクト
getImage Promotion.Image このプロモーションに関連付けられている画像

Promotion.Image

メソッド 戻り値 説明
getSource String プロモーションリンクの画像URL。
getWidth Integer 画像の幅(ピクセル単位)
getHeight Integer 画像の高さ(ピクセル単位)

Promotion.BodyLines

メソッド 戻り値 説明
getTitle String ブロックオブジェクトのテキスト
getHtmlTitle String ブロックオブジェクトのテキスト(HTML形式)
getUrl String ブロックオブジェクトのリンクURL
getLink String ブロックオブジェクトのリンクのアンカーテキスト

Search.SearchInformation

メソッド 戻り値 説明
getSearchTime Double サーバーが検索結果を返すのにかかる時間
getFormattedSearchTime String サーバーが検索結果を返すのにかかる時間
getTotalResults String クエリによって返された検索結果の合計数
getFormattedTotalResults String 検索結果の合計数

Search.Spelling

メソッド 戻り値 説明
getCorrectedQuery String 修正されたクエリ
getHtmlCorrectedQuery String 修正されたクエリ(HTML形式)

Result

メソッド 戻り値 説明
getKind String リソースの種類
固定文字列:"customsearch#result"
getTitle String 検索結果のタイトル
getHtmlTitle String 検索結果のタイトル(HTML形式)
getLink String 検索結果が指している完全なURL
getDisplayLink String この検索結果のURL
getSnippet String 検索結果のスニペット
getHtmlSnippet String 検索結果のスニペット(HTML形式)
getCacheId String Googleがキャッシュに保存した検索結果のバージョンID
getFormattedUrl String 各検索結果のスニペットの後に表示されるURL
getHtmlFormattedUrl String 各検索結果のスニペットの後に表示されるURL(HTML形式)
getPagemap Map<String,Object> この検索結果のPageMap情報
getMime String 検索結果のMIMEタイプ
getFileFormat String 検索結果のファイル形式
getImage Result.Image 検索結果で返される画像に関する情報
getLabels List<Result.Labels> 絞り込みラベルに関する情報

Result.Image

メソッド 戻り値 説明
getContextLink String 画像をホストするウェブページを示すURL
getHeight Integer ピクセル単位の画像の高さ
getWidth Integer ピクセル単位の画像の幅
getByteSize Integer 画像のサイズ(バイト単位)
getThumbnailLink String サムネイル画像URL
getThumbnailHeight Integer サムネイル画像の高さ(ピクセル単位)
getThumbnailWidth Integer サムネイル画像の幅(ピクセル単位)

Result.Labels

メソッド 戻り値 説明
getName String 絞り込みラベルの名前
getDisplayName String 絞り込みラベルの表示名
getLabel_with_op String 絞り込みラベルと関連する絞り込みオペレーション

検索対象の言語

定義値(文字列) 内容
lang_ja 日本語
lang_en 英語
lang_ar アラビア語
lang_bg ブルガリア語
lang_ca カタロニア語
lang_cs チェコ語
lang_da デンマーク語
lang_de ドイツ語
lang_el ギリシャ語
lang_es スペイン語
lang_et エストニア語
lang_fi フィンランド語
lang_fr フランス語
lang_hr クロアチア語
lang_hu ハンガリー語
lang_id インドネシア語
lang_is アイスランド語
lang_it イタリア語
lang_iw ヘブライ語
lang_ko 韓国語
lang_lt リトアニア語
lang_lv ラトビア語
lang_nl オランダ語
lang_no ノルウェー語
lang_pl ポーランド語
lang_pt ポルトガル語
lang_ro ルーマニア語
lang_ru ロシア語
lang_sk スロバキア語
lang_sl スロベニア語
lang_sr セルビア語
lang_sv スウェーデン語
lang_tr トルコ語
lang_zh-CN 中国語(簡体)
lang_zh-TW 中国語(繁体)

検索対象の国

定義値(文字列) 内容
jp 日本
us アメリカ合衆国
af アフガニスタン
al アルバニア
dz アルジェリア
as 米領サモア
ad アンドラ
ao アンゴラ
ai アンギラ
aq 南極
ag アンティグア バーブーダ
ar アルゼンチン
am アルメニア
aw アルバ
au オーストラリア
at オーストリア
az アゼルバイジャン
bs バハマ
bh バーレーン
bd バングラデシュ
bb バルバドス
by ベラルーシ
be ベルギー
bz ベリーズ
bj ベナン
bm バミューダ
bt ブータン
bo ボリビア
ba ボスニア ヘルツェゴビナ
bw ボツワナ
bv ブーベ島
br ブラジル
io 英領インド洋地域
bn ブルネイ ダルサラーム国
bg ブルガリア
bf ブルキナファソ
bi ブルンジ
kh カンボジア
cm カメルーン
ca カナダ
cv カーボベルデ
ky ケイマン諸島
cf 中央アフリカ
td チャド
cl チリ
cn 中国
cx クリスマス諸島
cc ココス(キーリング)諸島
co コロンビア
km コモロ
cg コンゴ
cd コンゴ民主共和国
ck クック諸島
cr コスタリカ
ci コートジボワール
hr クロアチア
cu Cuba
cy キプロス
cz チェコ共和国
dk デンマーク
dj ジブチ
dm ドミニカ国
do ドミニカ共和国
ec エクアドル
eg エジプト
sv エルサルバドル
gq 赤道ギニア
er エリトリア
ee エストニア
et エチオピア
fk フォークランド諸島(マルビナス諸島)
fo フェロー諸島
fj フィジー
fi フィンランド
fr フランス
gf 仏領ギアナ
pf 仏領ポリネシア
tf 仏領南方、南極地域
ga ガボン
gm ガンビア
ge グルジア
de ドイツ
gh ガーナ
gi ジブラルタル
gr ギリシャ
gl グリーンランド
gd グレナダ
gp グアダループ
gu グアム
gt グアテマラ
gn ギニア
gw ギニアビサウ
gy ガイアナ
ht ハイチ
hm ハード島、マクドナルド諸島
va ローマ教皇庁(バチカン市国)
hn ホンジュラス
hk 香港
hu ハンガリー
is アイスランド
in インド
id インドネシア
ir イラン
iq イラク
ie アイルランド
il イスラエル
it イタリア
jm ジャマイカ
jo ヨルダン
kz カザフスタン
ke ケニア
ki キリバス
kp 朝鮮民主主義人民共和国
kr 韓国
kw クウェート
kg キルギスタン
la ラオス人民民主共和国
lv ラトビア
lb レバノン
ls レソト
lr リベリア
ly リビア アラブ ジャマーヒリーヤ国
li リヒテンシュタイン
lt リトアニア
lu ルクセンブルク
mo マカオ
mk マケドニア旧ユーゴサルブ共和国
mg マダガスカル
mw マラウイ
my マレーシア
mv モルディブ
ml マリ
mt マルタ
mh マーシャル諸島
mq マルチニーク
mr モーリタニア
mu モーリシャス
yt マイヨット島
mx メキシコ
fm ミクロネシア連邦
md モルドバ
mc モナコ
mn モンゴル
ms モントセラト
ma モロッコ
mz モザンビーク
mm ミャンマー
na ナミビア
nr ナウル
np ネパール
nl オランダ
an オランダ領アンティル
nc ニューカレドニア
nz ニュージーランド
ni ニカラグア
ne ニジェール
ng ナイジェリア
nu ニウエ
nf ノーフォーク島
mp 北マリアナ諸島
no ノルウェー
om オマーン
pk パキスタン
pw パラオ
ps パレスチナ自治区
pa パナマ
pg パプアニューギニア
py パラグアイ
pe ペルー
ph フィリピン
pn ピトケアン島
pl ポーランド
pt ポルトガル
pr プエルトリコ
qa カタール
re レユニオン
ro ルーマニア
ru ロシア連邦
rw ルワンダ
sh セントヘレナ
kn セントクリストファー ネーヴィス
lc セントルシア
pm サンピエール ミクロン
vc セントヴィンセントおよびグレナディーン
ws サモア
sm サンマリノ
st サントメ プリンシペ
sa サウジアラビア
sn セネガル
cs セルビア モンテネグロ
sc セイシェル
sl シエラレオネ
sg シンガポール
sk スロバキア
si スロベニア
sb ソロモン諸島
so ソマリア
za 南アフリカ
gs サウスジョージア・サウスサンドウィッチ諸島
es スペイン
lk スリランカ
sd スーダン
sr スリナム
sj スヴァールバル諸島およびヤンマイエン島
sz スワジランド
se スウェーデン
ch スイス
sy シリア
tw 台湾
tj タジキスタン
tz タンザニア
th タイ
tl 東ティモール
tg トーゴ
tk トケラウ諸島
to トンガ
tt トリニダード トバゴ
tn チュニジア
tr トルコ
tm トルクメニスタン
tc タークス カイコス諸島
tv ツバル
ug ウガンダ
ua ウクライナ
ae アラブ首長国連邦
uk イギリス
um 合衆国周辺離島
uy ウルグアイ
uz ウズベキスタン
vu バヌアツ
ve ベネズエラ
vn ベトナム社会主義共和国
vg 英領バージン諸島
vi 米領バージン諸島
wf ウォリス フツナ諸島
eh 西サハラ
ye イエメン
zm ザンビア
zw ジンバブエ


おしまい。。
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1