上手にかっこよく検索しよう ~学生のためのヒント~

これは学生がより効果的,効率的にディジタルデータの海から目当ての獲物を 釣り上げられるようになるためのヒント集です。

検索についてのテクニックを身につけているかどうかは,作業の能率, もっと極端に言えば一生のうちにできる仕事の量に,大きな差を生み出します。 あなたもぜひ上手に,かっこよく検索できるようになってください!

多くのケースでは,このページに書いてあることを上から順番に習得していくのが適当かと思われます。

"かつ" と "または" で複数の単語を組み合わせる

いつも1フレーズで検索しているなら,あなたがどんな検索システムを使っているにせよ, あなたはそのシステムの機能を10%も使っていないでしょう。 たいていの検索システム(web検索,PC内のファイル検索,文書内検索,図書館データベース検索など)には 複数のフレーズを組み合わせる機能が付いています。

一つは2つ以上の語を "かつ"(and) で組み合わせる機能です。 これはどんな検索システムにもあると思います。

例)

検索:
リンゴ and バナナ
結果:
リンゴ も バナナ も含むものが一覧される

通常,web検索(Googleなどの検索エンジン)ではスペースで語を区切って並べるだけで, それらを全部「かつ」でつなげたものと見なしてサーチします。

データベースの検索や一部のweb検索エンジンには2つ以上の語を "または"(or) で組み合わせる 機能があります。

例)

検索:
リンゴ or バナナ
結果:
リンゴ か バナナ の少なくとも一方を含むものが一覧される

これらは高度な検索テクを習得するための第一歩です。 必ず活用できるようになりましょう。

もっと高度に論理演算

高度な検索システムではnot演算ができることがあります。 一般にnotは論理否定(真理値逆転)の意味ですが, 検索システムにおいては記号notはandの意味を含んでいる二項演算子(論理差)であることが多いです。 すなわち,次の例のような検索結果を得ます。

例)

検索:
リンゴ not バナナ
結果:
リンゴ を含み,かつ, バナナ を含まない ものが一覧される

さらに,これら and, or, not(論理演算子)を複雑に組み合わせることができる 検索システムもあります。 組み合わせるときの代表的な記号は ( ) 括弧です。( ) が書いてあると,数学の場合と同じで, その部分から先に評価を行います。

例)

検索:
リンゴ and ( バナナ or ミカン )
結果:
リンゴ を含み,かつ,「 バナナ か ミカン 」の少なくとも一方を含むものが一覧される

例)

検索:
リンゴ or ( バナナ and ミカン )
結果:
リンゴ を含むものか,もしくは,バナナ と ミカン の両方を含むもの,が一覧される

例)

検索:
リンゴ or ( バナナ not ミカン )
結果:
リンゴ を含むものか,もしくは,バナナ を含んでいて ミカン を含まないもの,が一覧される

複数の演算子を組み合わせるときに ( ) を付けずにいると先頭から順番に評価するシステムが多いようです。 そのような検索システムにおいて,これらの例で ( ) を書いていないと どのような結果になるか考えましょう。どれも上記とは違った結果になります。 また,一部のシステムではandのほうがorよりも優先順位が高いことがあります。

ここで挙げた論理演算に関する記号 and,or,not,( ) の表記法は代表的なものを示したものです。 このような論理演算の機能を利用するときの入力の仕方はシステムによって異なりますので, 不幸なことですが,それぞれの利用するシステムに応じて入力の仕方を調べなければなりません。

ここまでは学生にとって必須の内容だと思われます。ぜひ身につけてください。

部分一致検索,トランケーション

部分一致検索とは部分的な検索フレーズを指定してそれに合致するものを列挙する方法です。 これに対して単語をきっちり書く通常の検索を完全一致検索と呼びます。 部分一致検索はいくつかのバリエーションがあります。 前方一致検索,後方一致検索,中間一致検索などです。

もっともよくある部分一致検索は前方一致検索です。 これをトランケーションと呼んでいるシステムが多いです。 (トランケーションが何を指すかもまちまちなのです。)

例)

検索:
リンゴ*
結果:
リンゴ飴,リンゴジュース など リンゴ で始まるあらゆる単語を含むものが一覧される

この例で, リンゴ だけを含むもの(リンゴの後に何も続かないもの)が結果に含まれるかどうかですが, それはシステムによります(トランケーション記号とは別の問題です)。 リンゴ だけの結果を含む場合と含まない場合を使い分けられるよう記号を用意している システムもありますし,どちらか片方しか提供していないシステムもあります。 また,後方部分(*の部分)の最大文字数を指定できるものもあります。

システムによっては,このようなフレーズ記入時の特殊記号の挿入ではなく, 別のオプションで「前方一致」を指定するタイプのものもあります。 (たとえば goo辞書)

後方一致検索は,前方一致検索の逆で,単語の後ろ部分だけを指定するものです。

例)

検索:
*ベリー
結果:
ストロベリー,ブルーベリー など ベリー で終わるあらゆる単語を含むものが一覧される

後方一致検索は前方一致検索に比べると提供しているシステムは少ないです。また,前方一致と同様, 別のオプションで「後方一致」を指定するタイプのシステムもあります。

中間一致検索は,単語の中間だけを指定するものです。

例)

検索:
*リンゴ*
結果:
青リンゴジュース,青森リンゴ園 など リンゴ の前後に任意の文字を追加したあらゆる単語を含むものが一覧される

これが可能なシステムは後方一致検索ができるシステムよりもさらに少ないです。

別オプションではなく,これらの例のように特殊記号を検索ワードに挿入して その部分が任意の文字列だと指定するタイプのシステムでは,特殊記号(例では*)を 複数個挿入できるものもあります。そのようなシステムではこの中間一致検索が可能です。

任意の文字列を表す特殊記号(上記例では*)を使えば次のような検索も可能です。

例)

検索:
パ*ン
結果:
パイン,パソコン,パキスタン など *部分に任意の長さの文字列を入れたあらゆる単語を含むものが一覧される

これは前後一致検索というべきでしょうか(あまりこの呼び名は一般的ではないようですが)。

任意の文字列を表す記号,または,前方一致,後方一致などのオプションをシステムが提供しているなら, これをうまく活用することで単語だけでは不可能だった幅広い検索が可能になります。

何でもOKのワイルドカード

検索においては,ワイルドカードとはナンデモアリ,すなわち任意の文字,という意味です。 検索ワードにワイルドカードを含めることでその部分が何であってもヒットします。

例)

検索:
ミ?ン
結果:
ミカン,ミシン,ミラン など ?部分に任意の1文字を補ったあらゆる単語を含むものが一覧される

例では"?"は任意の1文字の意味ですが,0文字または任意の1文字を表す指定ができ, これをワイルドカードと呼んでいる場合もあります。 その場合,上記の例では ミン を含むものもヒットします。 どちらが提供されているかはシステムによりますし,両方使い分けられるように特殊記号が用意されている システムもあります。

トランケーションとの違いは,こちらは任意の「1文字」だということです。 これを応用して,任意の複数文字(文字数指定)が可能になります。

例)

検索:
ミ??ン
結果:
ミシガン,ミリオン など ?部分に任意の文字を補った4文字単語を含むものが一覧される

この例では"?"を任意の1文字としていますので,1文字目がミ,4文字目がンの4文字語を検索している ことになります("?"が「0文字もしくは任意の1文字」という意味なら話は変わってきます)。 このようにワイルドカードを表す特殊記号(例では"?")を連続で使うことで任意の~文字を表せます。 (1文字のワイルドカードを提供してはいるが連続させるのが可能でないシステムもあるかもしれません。)

Windowsではトランケーション記号も含めてワイルドカードと呼んでいるようです。

フィールド指定 - さらにしぼり込む

データベースではふつう,ひとつのレコードにたくさんの項目(=フィールド)があります。 通常の検索(フィールドについて何も指定しない場合)では, それらすべてを検索対象にしているはずです。 あるいはシステムによってはデフォルトの検索対象がいくつかのフィールドに絞られているかもしれません。 多くの検索システムでは,フィールドを限定して検索対象にする機能が用意されています。

例)

検索:
memory.ti.
結果:
論文タイトルに memory が含まれているものが一覧される

これはOvidというデータベース検索システムでの表記例です。 例では検索対象をタイトルだけに絞って検索します。 システムによっては複数のフィールドを指定する表記法もあります。 もしあなたのシステムにこの表記法が無くても,1つのフィールド指定さえできれば and で対応できます。

次はGoogleでの表記例です。

例)

検索:
リンゴ filetype:pdf
結果:
リンゴ を含むもので PDF ファイルであるものだけが一覧される

こうした検索フレーズ記入での特殊表記ではなく別のオプション指定(たいていはチェックボタン)で フィールドの限定ができるシステムもあります。 また,月日,年号などは範囲を指定して検索できるシステムも多いです。

あなたの使っているシステムにどういうフィールドしぼり込みオプションが用意されているかはチェックしておきましょう。 調べるのは面倒でも,長い目で見ればそれを知ることで全体的にあなたの作業時間を短縮できるはずです。

正規表現

正規表現[regular expression]とは「文字列のパターンを表現する表記法」 (出典:IT用語辞典 e-Words)です。 検索という観点からすれば,現在皆さんが利用可能なもののうちで,検索フレーズのもっとも複雑な表記法と言えるでしょう。 複雑ですがしかし,これによって頻繁に要求されるほとんどのパターンの表記が可能になります。

正規表現には方言がありますが,主な記法はほとんどのシステムで一致しています。 論理演算,トランケーション,ワイルドカード,などの機能はすべてこの正規表現の主な記法に含まれています。 つまり,これらをマスターしたあなたのための,さらなる発展が正規表現だと考えればよいでしょう。

学術雑誌のデータベース検索で正規表現が使えるシステムはまだ少ないです。 しかし,いろいろなシステムで徐々に正規表現が使えるようになってきています。 テキストエディタでも正規表現で文書内を検索をできるものが増えています。 また,Namazuという正規表現の使える日本語全文検索システムが有名で,ウェブ上でログが閲覧できるシステムでは Namazuを導入して正規表現での検索を可能にしているものが増えています。

正規表現は複雑なのでここですべてを説明しきるには足りないですが,いくつか例を挙げておきます。

例)

検索:
b.g
結果:
"."の部分に任意の一文字を補った文字列(big,bagなど)にマッチ

例)

検索:
.+ing
結果:
ing で終わり,ing の前に必ず1文字以上ある文字列(writingなど)にマッチ

例)

検索:
bed.*
結果:
bed で始まる任意の文字列(bedroom,bedtownなど)にマッチ。bed も含む

例)

検索:
apple|orange
結果:
apple もしくは orange にマッチ

例)

検索:
Boeing [0-9]{3}
結果:
"Boeing "の後に数字が3桁続く文字列にマッチ

例)

検索:
Oh, my Go{3,}d!
結果:
"Oh, my Goood!"など,Goood の部分で o が3回以上連続する文字列にマッチ。2回以下ではマッチしない

例)

検索:
0(8|9)0-?[0-9]{4}-?[0-9]{4}
結果:
日本の携帯電話や自動車電話の電話番号を示す文字列にマッチ。ハイフンがあってもなくてもマッチする

正規表現を覚えようという意欲のある方は,ウェブ上に解説サイトがたくさんありますので, そこで学びましょう。

Googleで「正規表現」を検索

すでにたくさんのサイトがあるので,いまのところ私は正規表現の詳細な解説ページを作る予定はありません。

正規表現でのマッチングを試せるページを用意しました。

  1. first written on 2004-10-03
  2. added a link to the regular expression demo page on 2011-04-12