Edited at

公式ドキュメントや Qiita 記事に特化した検索に Google エンジンを使うTIPS

Google の検索構文で Qiita や公式マニュアルを検索する TIPS


もっと簡単に Qiita 記事や公式ドキュメントを検索したい。

Google の検索構文で Qiita 記事やドキュメントを細かく検索したい。


つまり、Qiita 記事や公式ドキュメントを Google のエンジンを使って検索したい。簡単に。

HowToEaseSearchQiitaViaChrome.gifHowToEaseSearchQiitaViaFirefox.gif


TL;DR


ブラウザの検索エンジン(Chrome)もしくはブックマーク(Firefox)に「専用のエンジン」を追加する。

エンジンといっても、対象のサイトに絞ったクエリをキーワードに対して登録するだけなので、Qiita に限らず利用できる。


ChromeAndFirefox.png

これにより、例えば検索時のキーワード qta から Google 検索を始めると Qiita 記事に特化した検索ができます。つまり「qta <検索用語>」で Qiita 記事を検索できるようになります。

同様に php のキーワードに site:php.net/manual/ja を紐づければ、「php <検索用語>」で公式マニュアルを検索対象にできますし、wiki のキーワードに site:wikipedia.org を紐づければ Wikipedia を検索対象にできます。


設定

以下は Qiita 記事を検索対象とする例です。いずれも q=site:qiita.comqiita.com を他のサイト(例えば公式ドキュメントなど)の URL に変えることで汎用的に使えます。

また、クエリに &tbs=qdr:y を追加すると、過去1年以内に更新もしくは作成された記事に絞ることが出来るので、放置された古い情報ばかりがヒットする場合に便利です。


Chrome


GoogleChrome

[設定]-[検索エンジン]-[検索エンジンの管理]-[その他の検索エンジン]→「追加」より以下を設定。



  • 検索エンジン:Qiita

  • キーワード:qta (このキーワードから始まると下記クエリを利用します)

  • URL:{google:baseURL}search?q=site:qiita.com+%s


高精度版URL(Googleログイン時にGoolgeの学習付き)

{google:baseURL}search?q=site:qiita.com+%s&{google:RLZ}{google:originalQueryForSuggestion}{google:assistedQueryStats}{google:searchFieldtrialParameter}{google:searchClient}{google:sourceId}ie={inputEncoding}



Firefox


Firefox

[ブックマーク]-[すべてのブックマークを表示]-(歯車)-[新規ブックマーク]より以下を追加



  • 名前:Qiita

  • URL:https://google.com/search?q=site:qiita.com+%s

  • キーワード:qta (このキーワードから始まると上記クエリを利用します)

  • 上記 URL クエリに &tbs=qdr:y を追加すると1年以内に更新/作成された記事に絞れます。

以上のテクニックで「Wikipedia」、「英辞郎」や「プログラム言語のオンライン・ドキュメント」といった、Google に限らず URL クエリを渡して使えるものには何でも応用できるので活用してみてはいかがでしょう。


検証情報


  • Chrome バージョン: 67.0.3396.99(Official Build) (64 ビット)

  • Firefox バージョン:61.0.1 (Quantum, 64 ビット)

  • OS: macOS HighSierra (OSX 10.13.5)


Note



TS;DR(所感)

日本語化されたドキュメントがない時代の人間なので「何はともあれ公式ドキュメントから」と言われて育ってきました。

しかし、基本的にせっかちな検索猿人なので、Docker、CoreOS、PHP8 などの日進月歩な情報に興味を持つと、ググっては信憑性の薄いブログ記事に翻弄されるのでした。結局のところ、一巡して「まずは公式ドキュメントから検索する」という習慣に戻りました。「急がば回れ」的に。


マサカリ担いだ検索はイヤなのだ

公式ドキュメントから調べるとは言うものの、一見整理されているのに見つけにくかったり、ドキュメントを漁っても出てこなかったり、プロトコルに付いて行けず意味がよくわからない場合もあります。

そんな時には Google 検索の際に Qiita 記事にターゲットを絞って検索することが多くなりました。自分の備忘録として Qiita 記事にしているのが大半の理由ですが、やはり体感的に Qiita 記事の方が精度が高いと感じるからです。(コメント含む)

依然と個人ブログの情報は有益ではあるのですが、調べる内容によっては、ブログを見ても「これ日付ないけど、情報古くね?」とか「これ・・・間違ってね?」といったものが、まれによくあります。

かといって周りの意見を聞くように、該当ブログ記事の「ツイート」や「はてブ」を探し、見に行ってツッコミやマサカリをチェックするのも嫌なのです。

記事を読んだらそういうコメントも言いたくなる、という気持ちも分かる反面、「間違っている」とだけ文句を言って具体的な指摘がない「はてブのコメ」や「ツイート」を目にするのが嫌だし、コメントの内容を見ても気分が滅入る割合が大きいからです。個人的に。

そんな揚げ足的な裏を取りに行くなら、早々と次の記事を探しに行きたいのですが、そのたびに「また つまらぬものをクリックしてしまった」と、クリックしときながら後悔するのです。

確かに Qiita 記事にも同様に辛辣で、言葉数の少ない古代ローマ人のようなコメントはあります。しかし、Qiita にはユーザ間で記事を良くしていこうという姿勢があるので、マサカリが飛んでても「きれいなモヒカン族が多い」と感じるのです。(怖いのには変わりない)

また、Qiita と言えども、更新されていない古い情報も多く、当時有益だった情報ばかりがトップに表示され、最新の情報が埋もれるケースも多くあります。それでも、検索テクニックでカバーできる範囲ですし、同じサイトでコメントが読めるのはメリットだと感じています。

そのため、まずは無料で正確な公式ドキュメントを検索し、わかりづらければ先人方の築いたカルキの効いた温水プールに浸かってから(Qiita を検索してから)、必要な場合のみ嫌々ネットの深みにダイブする体になってしまった検索猿人なのです。(ぬるま湯じゃないんだ。適温なんだよ)


site:qiita.com を打つのが面倒なのだ

さて、検索に話を戻すと、私は Chrome のアドレスバーに検索用語を入れて Google 検索することが多くあります。

その際に「qiita <検索用語1> <検索用語2> ...」と「qiita」や「qiita.com」を入れていたのですが、最近 Qiita にリンクしているブログも多くあるため「site:qiita.com」とサイトを絞っていました。しかし、それを打つのすら、いささか面倒になってきました。_(:⁍」 )_

ユーザー辞書に単語登録や Qiita 専用の Chrome 拡張機能も考えたのですが、それも面倒です。Chrome の標準機能でなんとかならないか、とも悩みました。

そこでアドレスバーに「wiki <検索用語>」と打てば Wikipedia の検索クエリを使って検索できる検索エンジンの追加テクニックを思い出し、 Qiita の検索エンジンをクエリ URL として登録しました。


QiitaのクエリURL

https://qiita.com/search?q=%s


しかし、残念なことに Google ほどの期待した結果が Qiita の検索エンジンでは出ませんでした。そのため、以下のようにクエリを Google の検索エンジンに変更しました。


Qiita用GoogleクエリURL

https://www.google.co.jp/search?q=site:qiita.com+%s


これで Google の検索エンジンで使える構文が使えるようになりました。しかし、使って行くうちにあることに気づきました。


Google アカウントで最適化

Qiita を検索エンジンに追加したことで、「あーあの Qiita 記事にあったな」と思いつくキーワードで良い感じにヒットするようになりました。

しかし、アドレスバーからの「qta <検索用語 n >」横着タイプと、従来の「site:qiita.com <検索用語 n >」タイプで、マシン(環境)によって検索結果が異なることに気づきました。(Chrome での話です)

後者の「site:qiita.com <検索用語 n >」の方がより良い(より求めていたものに近い)検索結果が出るのです。逆に、前者の「qta <検索用語 n >」の方は、どのマシンでも同じ結果が出ます。

違いを見比べると、「site:qiita.com <検索用語 n >」と検索した場合に色々なクエリが自動で付いていました。

QueryDifference.png

おそらく、検索時のクエリに色々なクエリ・オプションを付加して Google の検索エンジンの精度を上げているのだと思われます。どんな情報を渡しているのか気になったのですが、どうやら既定の検索エンジンになっている「デフォルトの Google の検索クエリ URL」に違いがありあそうです。

スクリーンショット 2018-07-17 16.03.20.png

「これをコピペして site:qiita.com を加えて使えばええやん!」とコピペピピック精神が炸裂したのですが、デフォルト設定だからかグレーアウトして変更出来なくなっておりコピペどころか選択も出来ません。

仕方がないので、見えている範囲をピックアップし検索してみると、以下のサイトで「デフォルトの Google 検索エンジンクエリ」として同じようなクエリが使われていました。

「お、これジャマイカ!」と喜んだのもつかの間、どうやら 2013 年ごろのデフォルトが使いまわされているらしく、2015 年のコメントを見ると、確かに若干違っています。

いずれも出典元が記載されていないため、「最新のデフォルト設定値が知りたい」と思い、 Chromium のソースを調べてみたところ、以下の2箇所が有効そうです。


Chrome の検索エンジンのデフォルト URL クエリ設定箇所


policy_templates.json

{google:baseURL}search?q={searchTerms}&

{google:RLZ}{google:originalQueryForSuggestion}{google:assistedQueryStats}
{google:searchFieldtrialParameter}
{google:searchClient}
{google:sourceId}
ie={inputEncoding}


prepopulated_engines.json

{google:baseURL}search?q={searchTerms}&

{google:RLZ}{google:originalQueryForSuggestion}{google:assistedQueryStats}
{google:searchFieldtrialParameter}
+ {google:iOSSearchLanguage}
{google:searchClient}
{google:sourceId}
+ {google:contextualSearchVersion}
ie={inputEncoding}

Diff(違い)を見ると「iOSSearchLanguage」と「contextualSearchVersion」の2つが異なります。

また古い情報と比べると使われていない項目もあります。


ネットの古い情報

{google:baseURL}search?q=%s&

{google:RLZ}{google:originalQueryForSuggestion}{google:assistedQueryStats}
{google:searchFieldtrialParameter}
- {google:bookmarkBarPinned}
{google:searchClient}
{google:sourceId}
- {google:instantExtendedEnabledParameter}
- {google:omniboxStartMarginParameter}
ie={inputEncoding}

iOSSearchLanguage」は iOS 向けの設定ですし、「contextualSearchVersion」は範囲指定した用語を検索する場合(ここにはありませんが「contextualSearchContextData」とセットで)使われる設定なのですが、既定のエンジン(検索のデフォルト)に設定しないと渡されないため、設定しなくても良いと思います。というのも、デフォルトを Qiita 検索にすると、やはりそれはそれで不便だからです。

また、ネットの古い情報にある「bookmarkBarPinned」などのキーは現在では使われていないらしく SQL の DB テストをみても Chrome v64 を最後に使われていません

以上から 2018/07/17 現在の Chorme の Google 検索のデフォルトURLクエリは以下のようになると言って良いんジャマイカと。


{google:baseURL}search?q={searchTerms}&{google:RLZ}{google:originalQueryForSuggestion}{google:assistedQueryStats}{google:searchFieldtrialParameter}{google:searchClient}{google:sourceId}ie={inputEncoding}


これに「site:qiita.com」を加えた設定は以下のようになります。


{google:baseURL}search?q=site:qiita.com+{searchTerms}&{google:RLZ}{google:originalQueryForSuggestion}{google:assistedQueryStats}{google:searchFieldtrialParameter}{google:searchClient}{google:sourceId}ie={inputEncoding}


しかし、登録すると「{searchTerms}」は「%s」に置き換わるため、実際には最終設定は以下のようになります。


{google:baseURL}search?q=site:qiita.com+%s&{google:RLZ}{google:originalQueryForSuggestion}{google:assistedQueryStats}{google:searchFieldtrialParameter}{google:searchClient}{google:sourceId}ie={inputEncoding}


Have a good Qiita life!!