全文
検索とは、
コンピュータ上で複数の文書ファイルから特定の
文字列を
検索する技術です。ファイル名や単一ファイル内の
検索とは異なり、複数の文書全体を対象とする点が特徴です。これにより、大量の文書データから目的の情報を効率的に見つけ出すことが可能になります。
全文検索の技術
全文
検索の技術は、大きく分けて以下の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
全文
検索には、リニアサーチ、
バイナリーサーチ、ハッシュ法などの
アルゴリズムが用いられます。近年では、ダブル配列法やトリプル配列法なども利用されていますが、それぞれに利点と欠点があり、状況に応じて使い分けられています。
全文
検索は、現代の情報社会において、非常に重要な技術となっています。効率的な
情報[[検索]]は、業務効率の向上や、迅速な問題解決に不可欠であり、全文
検索技術はこれからも進化していくでしょう。