Posts Tagged ‘injection’

google_logo

「記号を以って文章を検索する。」

検索エンジンによる検索は高速、高密度化の一途をたどっていますが、
この記号検索の問題は依然根強く残っています。

プログラムの世界では記号が大活躍しますので、プログラム関連の調べ物をした時に
この問題にぶち当たって困った人も多いでしょう。

なぜ記号の検索が出来ないのか、という問題も「プログラム」である事に起因します。
検索エンジンの内部も当然プログラムで動作しています。検索窓に記号の入力を受け入れてしまうと
本来検索するだけのシステムのはずが、全く別のプログラムを実行してしまう恐れがあるのです。

残念ながら、そう言う事を意図的に起こす人々が世に絶えませんので
検索サービス側としては、もういっそ記号等の入力を受け入れないような体制を取らざるを得ないという訳です。
興味のある人は「SQLインジェクション」等のキーワードで、この辺りの問題を詳しく知る事ができます。

さて、そんな情勢の中でも検索エンジンは日々進歩を遂げようと改善し続けているようです。
現在、Googleでは以下の記号による検索が可能になっています。

  • プラス記号(+): 血液型 「AB+」や プログラミング言語 「C++」などの用語を検索できます。
  • アットマーク(@): ソーシャル タグを検索できます( 「@Google」 や 「@ladygaga」など)。
  • アンパサンド(&): 2 つの単語が結び付いて構成される概念や語句を検索できます( 「A&E」 や 「Brothers & Sisters」など)。
  • ドル記号($): 価格を表します。たとえば 「nikon 400」 と 「nikon $400」 では異なる検索結果が表示されます。
  • ハッシュタグ/番号記号(#): 流行のトピックを検索できます( 「#lifewithoutgoogle」など)。
  • ダッシュ(-): その前後の単語を強く結び付けるのに使用されます( 「twelve-year-old dog」 や 「cross-reference」など)。
  • アンダースコア記号(_): 2 つの単語を結び付ける場合は無視されません( 「quick_sort」など)。

たまたまCSS関連の調べ物をしている時に”-webkit”を検索してみたのですが、全く検索できませんでした。
まあ上に書かれているような、本来の使い方ではないんですが(笑)
“webkit”で検索すると、当然ズラっと結果が返って来ました。
まだまだ記号を使った柔軟な検索は難しいようです。

追記(12/10/18)
dyama氏からコメント欄にて指摘をいただきました。

「-webkit」のように単語の頭にハイフンを付けるとNOT検索ですね。「lilo」で検索した際、リロ&スティッチが大量にヒットして見づらい場合など「lilo -desney」という使い方をすると検索候補からディズニー関連の候補がとりのぞかれます。
ついでですが、スペースを含む単語の順番を固定したい場合は「”X Window”」のようにダブルクォートで囲めばOK。
また「nes ソフト 開発」のように、Googleが勝手にNESをNECのタイポと解釈して「NECソフト」などを検索候補に出しやがる場合はも「”nes” ソフト 開発」と入力することにより、単語NESの優先順位を挙げることができます。

ありがとうございます。

まとめると、上のリストに加えて以下の事が言えるようです。

  • 単語の頭に-(ハイフン)をつけるとNOT検索。その単語を含む結果が除外される
  • スペースを含む単語の順番を固定したい時には”(ダブルクオート)で囲む。
    たとえば”hello world”と囲んで検索すれば”hello”と”world”のorで検索されず、”hello world”の完全一致検索が出来る
  • また、”(ダブルクオート)で単語を囲んで検索した場合、複数単語と組み合わせた時に、ダブルクオートで囲んだ単語の検索優先順位を上げる事が出来る。

という事ですね。上手くまとまってない気もしますが。

つまり、”-webkit”と検索していた私は何も検索していないのと同義だったという事ですね・・・orz

とりあえず-webkitを全体で一語として認識させるべく、”-webkit”とダブルクオートで囲んで検索してみましたが結果は”WebKit”等のハイフンなしの文字が結果として上がって来ました。

“(ダブルクオート)で囲んだオプション用記号はエスケープして、文字列として認識して検索する。
のようなアプローチに今後期待したいですね。

end