アンケートご協力のお願いgihyo.jpでは,2010年度に向けて豪華プレゼントが当たる読者属性アンケートを実施しております。ご協力ください。

gihyo.jp » DEVELOPER STAGE » 連載 » 検索エンジンはいかにして動くのか? » 第3回 転置索引とは何か?

検索エンジンはいかにして動くのか?

第3回 転置索引とは何か?

はじめに

前回までは,検索エンジンの概要を見てきました。今回からは,全文検索の中核となる索引構造について見ていきます。

第1回の復習になりますが,全文検索には主に2種類の方法がありました。検索したいデータに対して前処理をせず,検索時に文書を走査するgrep型と,あらかじめ索引を作っておいて検索時にその索引を利用する索引型です。今回から数回にわたり,索引型において最も普及している転置索引という索引構造について解説していきます。

転置索引とは

さて,転置索引とは何なのでしょうか?

身近な所で例にあげると,書籍(専門書など)の巻末にある索引は,本における転置索引といえます。巻末には通常,キーワード(単語)とそのキーワードが出てくるページが記載されています。キーワードはアイウエオ順やアルファベット順に並べられているので,探したいキーワードを簡単に見つけることができ,そのキーワードがどのページで言及されているかが一発でわかります。この本の索引がまさに転置索引であり,見つけたいキーワードを索引から探す処理が検索処理そのものなのです。

次に疑問になりそうなポイントは「転置」という言葉だと思います。何が転置するのでしょうか?

たとえば,ある書籍のページとそこに書かれている内容が,以下のようになっていたとします。

ページ1(P1): この連載では検索エンジンについて解説します。
ページ2(P2): 転置索引は検索エンジンの重要な要素です。

表1は,この書籍のページとそのページに出てくる(メインとなる)キーワードの関係を表にしたものです。

表1

 連載検索エンジン解説転置索引
P1111100
P2011011

この表は左から右にしか見られないと思ってください。つまりこの表からは,ページ1には「連載」や「検索」などの単語が出てきて,ページ2には同様に「検索」や「転置」などの単語が出てきていると読み取ることしかできません。

ではこのとき,たとえば「検索」という単語がどのページにあるかを読み取りたい場合は,どうすればいいでしょうか? この表は左から右にしか読み取れないので,表をひっくり返す必要があります。つまり,表1を表2のように書き換えます(同時に,単語をあいうえお順に並び換えています)。

表2

 P1P2
エンジン11
解説10
検索11
索引01
転置01
連載10

表は左から右に読み取るので,こうすれば「検索」という単語はページ1とページ2の両方に出てきているということがわかります。また,表2は本の索引と同じ構造していることがわかると思います。先に紹介したように,これが転置索引です。つまり,この表をひっくり返す書き換え操作のことを転置と呼ぶのです(高校の数学で行列を習っていれば,転置行列における転置と全く同じ操作なので,わかりやすいと思います)。

「転置索引を構築する」とは,このような表の書き換え行うことになります。ちなみに,転置索引のことを英語ではInverted Indexと呼びます。

対応付けの単位

先ほど,書籍における転置索引の例を説明しました。本では,ページという単位でアクセスするので,単語とページの対応付けを行いました。では,その他の場合は何を単位として単語との対応付けを行えばいいでしょうか?

Web上のHTMLページの場合,1つのHTMLページをアクセス単位とするのが良さそうです。また,メールの場合は,1本のメールがアクセス単位となりそうです。このように,検索対象ごとにアクセス単位は変わります。

転置索引では,このアクセス単位のことを「文書(Document)」と言及している場合が多いです。つまり転置索引は,文書に出現する単語と文書の対応付けを行う表であると言えます。

著者プロフィール

山田浩之(やまだひろゆき)

日本IBM株式会社を経て,ヤフー株式会社等で検索エンジンの開発に従事。現在は大学院でデータベース・情報検索の研究を行う。また,オープンソースで全文検索エンジンLuxやデータベースマネージャLux IOの開発を行っている。

コメント

コメントの記入

パスサポ

多数の情報処理技術者試験対策書籍の発行実績を誇る技術評論社がお届けする,資格試験合格サイト「めざせ! 情報処理試験 パスサポ」が開設されました。

ピックアップ

サクセスストーリーに続く,快適サーバー運用管理のヒント!

データの増大,煩雑な管理,システムダウン,セキュリティなど,迫りくる課題からシステム管理者の負担を軽くするポイントを解説します。

gihyo.jp インフラエンジニア情報局

ネットワークやITにかかわるあらゆる業種で必要とされるインフラエンジニアに向けた技術情報や心構え,その魅力について多角的に紹介。

テストエンジニア ステーション

いま,ITに関わるあらゆる開発業務で注目されつつあるテスト系エンジニアをターゲットにしたコンテンツサイトを展開します。

一行クイックアンケート

gihyo.jpで取り上げてほしいネタは?

※検索はページ右上の検索ボックスをご利用ください。

その他の連載

読むウェブ ~本とインタラクション

ディスプレイで読む活字とそのインタラクション(interaction:相互作用)について,最新Webを紹介しながら読み解いていく。

いま,見ておきたいウェブサイト

この連載では,国内外の最新のウェブサイトを隔週更新で取り上げ,これら最新サイトの特徴や素晴らしい部分を,さまざまな角度から解説していきます。

Windows phoneアプリケーション開発入門

Windows Marcketplace for Mobileがサービス開始され,作成したアプリケーションを個人でも世界をターゲットに公開できる環境が整ってきました。これを機にWindows phoneアプリケーションの開発をしてみませんか?

ここは知っておくべき!Windows Server 2008技術TIPS

5年ぶりのサーバOSとなったWindows Server 2008が出荷されて早2年。2009年にはR2が出荷され,再び注目を集めています。発売前から実施したトレーニングによって感じた,インフラエンジニアの方々に知っておいていただきたい機能を中心にご紹介します。

キーパーソンが見るWeb業界

本連載はWeb Site Expert/gihyo.jpとの連動企画です。阿部淳也, 長谷川敦士, 森田雄のお三方による,Web業界をテーマにした座談会です。

きたみりゅうじの聞かせて珍プレー

ソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。みなさんからの投稿もお待ちしてます!

ActionScript 3.0で始めるオブジェクト指向スクリプティング

野中文雄氏が,簡単なスクリプトは書いたことがあるという初級者を対象に,ActionScript 3.0の基本からクラス定義までを解説します。

まだ間に合う「ITパスポート」受験対策 原山先生の短期合格塾

この連載では,4月18日のITパスポート試験の受験に向けて,短い期間で効率良く受験対策を行う方法や,確実に得点するための裏ワザなどを伝授していきます。

連載一覧

gihyo.jp

  • DEVELOPER STAGE
  • ADMINISTRATOR STAGE
  • WEB+DESIGN STAGE
  • LIFESTYLE STAGE
  • SCIENCE STAGE
  • NEWS & REPORT

書籍案内

  • 新刊書籍
  • 書籍ジャンル一覧
  • 書籍シリーズ一覧
  • 新刊ピックアップ
  • ロングセラー
  • 電脳会議

定期刊行物一覧

  • Software Design
  • WEB+DB PRESS
  • Web Site Expert
  • 組込みプレス