全文検索

全文検索とは



全文検索とは、コンピュータ上で複数の文書ファイルから特定の文字列検索する技術です。ファイル名や単一ファイル内の検索とは異なり、複数の文書全体を対象とする点が特徴です。これにより、大量の文書データから目的の情報を効率的に見つけ出すことが可能になります。

全文検索の技術



全文検索の技術は、大きく分けて以下の2つのタイプがあります。

grep型



grep型は、別名「順次走査検索」や「逐次検索」とも呼ばれます。これは、UNIXのコマンドである「grep」が由来となっており、複数のテキストファイルの内容を順次読み込み、検索対象の文字列を探し出す方式です。事前に索引ファイルを作成しないため、検索対象が増えるにつれて検索速度が低下するという欠点があります。

索引



索引型は、検索対象となる文書群を事前に解析し、高速な検索が可能な索引データを作成します。この索引データの作成をインデクシングと呼び、生成されるデータはインデックスと呼ばれます。インデックスは、多くの場合「文字列 | ファイルの場所 | ファイルの更新日 | 出現頻度…」といったリスト形式で構成され、検索時にはこのインデックスを利用することで、高速な検索を実現します。

索引文字列の抽出手法



索引を作成する際、文書からどのように文字列を抽出するかが重要になります。主な手法として以下のものがあります。

形態素解析



英語のように単語がスペースで区切られている言語では、単語単位での抽出は容易ですが、日本語にはスペースで区切る習慣がないため、形態素解析という技術を用いて文脈を解析し、単語に分解する必要があります。この際、解析用の辞書が必要となり、辞書の品質が検索結果に影響を及ぼします。

N-Gram



N-Gramは、検索対象を単語単位ではなく文字単位で分解し、後続のN-1文字を含めた状態で出現頻度を求める方法です。たとえば、「全文検索」という文字列の場合、「全文」「文検」「検索」というように2文字ずつ分割して索引化を行います。この方法では辞書は不要ですが、検索ノイズの発生やインデックスサイズの肥大化といった欠点があります。

その他の索引文字列抽出手法



上記以外にも、文字種による切り分け、接尾辞配列、シグネチャ法などの手法がありますが、大規模システムには適用しづらく、精度にも課題があるため、主流ではありません。

文書フィルタ



検索対象となる文書がプレーンテキスト以外の場合、たとえばHTML文書であればタグを削除するなどの処理が必要になります。また、ワープロソフトの独自形式のようにバイナリ形式の場合、直接テキストを抽出することができません。このため、文書フィルタというツールを利用してテキストを抽出する必要があります。

転置ファイル



全文検索のインデックスとして最も一般的なものが、転置ファイルです。これは、単語と、その単語を含む文書ファイルのIDで構成されたテーブルで、検索時に高速に文書IDを探し出すことができます。

再現率と適合率



全文検索システムの評価指標として、「再現率」と「適合率」が用いられます。再現率は検索漏れの少なさを、適合率は検索ノイズの少なさを表します。一般的に、この二つはトレードオフの関係にあります。

ランク付け



検索結果は、「更新順」「ファイル名順」といった順でソートされます。検索エンジンでは、独自のランク付けルールを適用し、ユーザーにとって重要と思われる文書を上位に表示します。ランク付けには、文書中の検索単語出現頻度や、HTMLタグの解析、TF-IDF、ページランクなどの手法が用いられます。

主な用途



全文検索は、以下のような様々な場面で活用されています。

WWW検索サービス: インターネット上のウェブサイトを検索するサービス。
企業向け社内検索サービス: 社内のファイルサーバにある文書を検索するシステム。
デスクトップ検索: 個人のPCにあるファイルを検索するアプリケーション。

代表的な全文検索エンジン



全文検索エンジンには、様々な種類があり、それぞれ特徴を持っています。以下に代表的なものをいくつか紹介します。

サーバ/ワークステーション向け



無償: Tokyo Dystopia, Hyper Estraier, msearch, Namazu, Apache Lucene/Solr, Rast, Senna, Groonga
有償: jetrun®クラスター・サーチエンジン, ConceptBase Enterprise Search, Sedue, FAST ESP, FileBlog, Oracle Secure Enterprise Search, Piranha, SAVVY, SMART/InSight, Neuron, Vivisimo Velocity, WiSE, FlexSearch, InfoBee/iS, IBM OmniFind Enterprise Edition, FAST Search Server for SharePoint, Autonomy IDOL, QuickSolution, Microsoft SharePoint Server

個人向け



無償: Windows Search, Spotlight, GrepWin, Googleデスクトップ, DesktopHE, インデックスサービス, FindFast, Beagle, MetaTracker, butterfly_search
* 有償: 全文検索くん, サーチクロス, コンセプトサーチ, 分散インデックス型 全文検索ソフト: Pokuda Search Pro

全文検索アルゴリズム



全文検索には、リニアサーチ、バイナリーサーチ、ハッシュ法などのアルゴリズムが用いられます。近年では、ダブル配列法やトリプル配列法なども利用されていますが、それぞれに利点と欠点があり、状況に応じて使い分けられています。


全文検索は、現代の情報社会において、非常に重要な技術となっています。効率的な情報[[検索]]は、業務効率の向上や、迅速な問題解決に不可欠であり、全文検索技術はこれからも進化していくでしょう。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。