|
● 文字列マッチング方式 (図a)
文字列マッチング方式は、検索対象となるテキストを検索の度にトレースし、対象となる文字列がその中に含まれるかを見つけ出すものです。文字列マッチング方式の研究の歴史は古く1970年代から優れた実現法が次々と提案されています。検索対象となるテキストファイルさえあれば、すぐに検索ができる手軽さから、パソコン上のアプリケーション、例えばメールクライアントソフトやインターネットブラウザ内に組み込まれている検索機能は、文字列マッチング方式が一般的です。 |
|
● インバーテッドインデックス方式 (図b)
もう一方のインバーテッドインデックス方式は、大量のテキストを何度も何度も検索する用途において圧倒的な高速性を実現する方式です。インバーテッドインデックス方式で用いる索引表はまさに、百科辞典の「索引」を思い浮かべてもらえればよいと思います。そこでは、調べたい単語が、ABC順やあいうえお順に整列されており、各単語ごとにそれが出現するページの一覧が書かれていますね。分厚い百科事典の中で、目的とする単語がどこに出現するかを、頭のページから順に見ていくのが文字列マッチング方式だとすると、巻末にある索引から引くのがインバーテッドインデックス方式となります。検索に必要な時間が桁違いに速くなることは直感的にわかっていただけると思います。コンテンツの性質やCPU性能に依存するものの、検索性能の大雑把な違いとしては、新聞10年分規模の文書を最新の計算機で検索するの に、文字列マッチング方式では数十秒〜数分、インバーテッドインデックス方式では0.0数秒と2桁から3桁近い差があります。ただし本方式は、検索処理を行う前に一度全テキストデータを読み込んで索引表を作成しておく必要があります。 |
|
| <図> |
|
|
| |
以上、2つの方式を比較すると、データ規模が小さい場合や個人のPCで単独で使う場合や更新頻度が高く同じデータを1度しか検索対象にしないような場合は文字列マッチング方式が向いており、データ規模が大きな場合やサーバサイドのサービスとして多数のユーザで共同利用する場合や同じデータを何度も繰り返し検索の対象にする場合にはインバーテッドインデックスが向いています。
当社Accela Bizsearchは、インターネット検索や企業内での情報共有など、 大規模なコンテンツを多数のユーザが検索する用途を対象としていますので、 インバーテッドインデックス方式を採用しています。 |
| |
| ● 検索方式の比較 |
| 方式 |
特徴 |
大規模な文書検索 |
コンテンツ更新の追従性 |
多数アクセス |
| 文字列マッチング方式 |
テキストさえあれば即検索実行 |
× |
○ |
× |
| インバーテッドインデックス方式 |
索引表を作成し高速検索を実行 |
○ |
× |
○ |
|